EXCELのDATEDIFには罠がある
DATADIF関数は日付の差を計算するための関数です。DATEDIFの使い方の詳細は以下URL参照してください。
https://support.office.com/ja-jp/article/datedif-%E9%96%A2%E6%95%B0-25dba1a4-2812-480b-84dd-8b32a451b35c
上のURLには
”重要: 制限事項があるため、"MD" 引数の使用はお勧めしません。 以下の既知の問題のセクションを参照してください。”
と…書かれてはいるものの、まさか自分がハマるとは思わなかったです。
EXCEL365で A1に2019/01/02、 A2に2020/01/01、 A3に=DATEDIF(A1,A2,"MD")
を記入すると、以下のように30(日)が戻り値として出てきます。
しかし、EXCEL2007で同じ数値を入力すると…143が戻り値として出てきます。
エラーを回避するために以下URLでは
https://support.microsoft.com/ja-jp/help/2678753
=IF(AND(INFO("release")="12.0",MONTH(DATE(YEAR(A2),2,29))=2,MONTH(A2)=1,DAY(A1)>DAY(A2)),
DATEDIF(A1,A2,"MD")-(DATEDIF(DATE(2011,1,2),DATE(2012,1,1),"MD")-30),
DATEDIF(A1,A2,"MD"))
という長い関数で回避しろとのこと。早速やってみたら…できた!!
けど、DATEDIFはエラーが起こるということを念頭に使わないといけないようです。色んなバージョンのExcelを使っている人がいる環境で共同作業するようなことがある場合は注意が必要です。