日付の計算 DATEDIF関数

2つの日付の間の日数や年数、月数を計算します。

DATEDIF(開始日,終了日,単位)

DATEDIF関数は関数の挿入ダイアログにありません。また、この関数に関するヘルプもありません。入力の際は手入力となります。(図はexcel2013)

datedif

開始日、終了日は日付に対するセル参照かDATE関数などの日付が返ってくるものとします。=DATEDIF(A2,DATE(2014,5,14),”d”)のようにしてください。
=DATEDIF(“2014/1/1″,”2014/5/14”,”d”)
など日付を文字列で入力すると、問題が生じることがあるそうです。

開始日は1900年1月1日以降です。

単位は

単位    戻り値
“Y”    期間内の満年数
“M”    期間内の満月数
“D”    期間内の満日数
“MD”    開始日から終了日までの日数。この場合、月と年は考慮されません。
“YM”    開始日から終了日までの月数。この場合、日と年は考慮されません。
“YD”    開始日から終了日までの日数。この場合、年は考慮されません。

http://office.microsoft.com/ja-jp/mac-excel-help/HA102927601.aspxから引用

が利用できます。単位の”Y”、”M”、”D”はそれぞれ年数と月数と日数です。

”MD”は何ヶ月と何日の何ヶ月を無視して日数のみ算出します。
”YM”は何年何ヶ月の何年を無視して何ヶ月かのみを算出します。
”YD”は何年と何日の何年を無視して日数のみを算出します。

datedif_1

2月の末日から翌年の2月の末日までで確認してみます。

datedif_2

2月28日からということは3月1日で1日、3月2日で2日と計算していきます。

単位がyの場合は1年です。mは12か月、dは365日です。md、ym、ydはちょうど1年0か月と0日になりますのですべて0です。

ところが、うるう年の月末の場合少し結果がおかしいです。開始日の2012年はうるう年です。2012年2月29日は月末です。翌年の2月末は2月28日です。先ほどと同じように3月1日で1日、3月2日で2日とカウントすると日数はどちらも365日ですが、0年と11か月と30日になってしまいます。(もしくは0年と365日です。)

datedif_3

うるう日を挟むだけでしたら問題ありません。(うるう年なのでdは366日です)

datedif_4

開始日か終了日のどちらかが2月末日で期間中にうるう年が絡むと計算結果がおかしくなることがあるようです。

コメントを残す

メールアドレスが公開されることはありません。