【エクセル関数】年数・月数・日数などの期間を計算するDATEDIF
DATEDIF(開始日,終了日,単位)
- 第1引数:開始日(必須)。期間の開始日を指定。
- 第2引数:終了日(必須)。期間の終了日を指定。
- 第3引数:単位(必須)。期間の単位を指定。単位の種類は以下の表のとおり。
単位 | 意味 |
"Y" | 満年数 |
"M" | 満月数 |
"D" | 総日数 |
"YM" | 1年未満の月数 |
"YD" | 1年未満の日数 |
"MD" | 1か月未満の日数 |
指定した開始日から終了日までの期間を調べます。
使い方
DATEDIF関数は指定した開始日から終了日までの期間を調べてくれます。
単位の指定により、年数、月数、日数のどれでも調べることができます。
期間の計算に重宝するDATEDIF関数ですが、
エクセルの関数ライブラリには登録されてない、非公開の関数です。
そのため、式を手入力しなくてはなりません。
そして、バグがあります!
単位にYMとMDを指定すると、そのバグが起こる可能性があります。
マイクロソフトによるDATEDIF関数のバグの説明
http://support.microsoft.com/kb/2678753/ja
しかし、他の単位でも閏年が関係する(特に2月29日を開始日等に指定する)とバグが発生するようで、十分に注意する必要があります。
バグについては以下の記事に詳しくまとまっています。
No.50 DATEDIFの謎を追え(1) ~ DATEDIF関数の真実
http://www.niji.or.jp/home/toru/notes/50.html
以上をご理解の上、それでもDATEDIF関数を使いたい!という方に、
使い方を説明します。
◆年数の計算
2014年1月1日から2015年1月1日までの期間を計算します。年数で表示したいので、単位にYを使います。式は「=DATEDIF("2014/1/1","2015/1/1","Y")」です。下の表はセル番地を使用しているので、「=DATEDIF(A3,B3,C3)」になっています。結果は1になります。使い方は簡単ですね。
次にDATEDIF関数の特徴を知るために、2014年1月1日から2014年12月31日の期間を計算します。この結果は0になります。
つまり、DATEDIF関数では、1年後の同月同日にならないと満1年と計算されません。
もし、後者の例で満一年と計算させたい場合は、終了日に1を足し算しましょう。
式は「=DATEDIF("2014/1/1","2014/12/31"+1,"Y")」になります。
◆月数の計算
月数で期間を計算するときは、単位に"M"を使います。
2014年1月1日から2014年12月31日までの満月数を計算する式は、
「=DATEDIF("2014/1/1","2014/12/31","M")」です。
結果は11です。もし、この結果を12にしたい場合は、終了日に1を足してください。
◆日数の計算
日数で期間を計算する場合は、単位に"D"を使います。
2014年1月1日から2014年12月31日までの満月数を計算する式は、
「=DATEDIF("2014/1/1","2014/12/31","D")」です。
結果は364です。もし、この結果を365にしたい場合は、終了日に1を足してください。
◆満年数未満の月数の計算
満年数に満たない月数を計算する場合、単位に"YM"を使います。
2014年1月1日から2015年3月31日までの満年数に満たない月数を計算する式は、
「=DATEDIF("2014/1/1","2015/3/31","YM")」です。
結果は2です。もし、この結果を3にしたい場合は、終了日に1を足してください。
◆満年数未満の日数の計算
満年数に満たない日数を計算する場合、単位に"YD"を使います。
2014年1月1日から2015年1月31日までの満年数に満たない日数を計算する式は、
「=DATEDIF("2014/1/1","2015/1/31","YD")」です。
結果は30です。もし、この結果を31にしたい場合は、終了日に1を足してください。
◆満月数未満の日数の計算
満月数に満たない日数を計算する場合、単位に"MD"を使います。
2014年1月1日から2015年1月31日までの満月数に満たない日数を計算する式は、
「=DATEDIF("2014/1/1","2015/1/31","MD")」です。
結果は30です。もし、この結果を0にしたい場合は、終了日に1を足してください。
以上がDATEDIF関数の使い方でした。
バグがあるものの、期間の計算には便利な関数です。
注意点を理解して使ってくださいね。
なお、DATEDIF関数を使わずに計算する方法を
紹介したサイトがあります。
こちらも参考にすることをお勧めします。
Excel一般機能:DATEDIF関数のバグ対策
http://www.geocities.jp/chiquilin_site/data/100509_datedif.html