質問: Excel97でDateDifを使って期間の一ヶ月未満の日数を出したいのですが、 =DATEDIF("1999/3/31","2000/3/1","md") とすると答えは「-1」になってしまいます。 31日を"1999/3/30"に変えると「0」になります。 なぜこうなるのでしょうか。閏年の関係のようにも思えるのですが。
回答: Y年M月D日間を計算するなら、こんな式はどうでしょうか? A B 1 1999/3/31 2000/3/1 という表だとして、 =TRUNC(DATEDIF(A1,B1,"m")/12,0)&"年"&MOD(DATEDIF(A1,B1,"M"),12)&"月"&DAY(B1)&"日" とすると「0年11月1日」となります。 セルA1が月末と限らなければ、 =TRUNC(DATEDIF(A1,B1,"m")/12,0)&"年"&MOD(DATEDIF(A1,B1,"M"),12)&"月"&DATEDIF(A1,DATE(YEAR(A1),MONTH(A1)+1,0),"d")+DAY(B1)&"日" 日数の計が月の日数を越える場合は、IF関数で条件付けをすることになりますが、長い間抜けな式になりそうなのでこの辺で。