2016年05月23日

総務人事の役に立つExcel技:年齢を計算する

今日の日付から生年月日をマイナスして365で割れば年齢が計算できそうですが、閏年があるためそう簡単にはいきません。
2つの日付の間の期間を表すDATEDIF関数を使いましょう。

 書式:=DATEDIF( 開始日 , 終了日 , 単位 )

 単位  計算結果
 "Y"  期間の年数
 "M"  期間の月数
 "D"  期間の日数

単位は両端のダブルクォーテーションも必要です。
他にも"MD","YM","YD"という単位もありますが、計算を間違うバグがあるため、使うには注意が必要です。

このDATEDIF関数は、Excel以前に表計算ソフトのスタンダードであったLotus1-2-3との互換性を保つために出来た関数で、今に至るまでこれに替わるExcel独自の関数が無く、Lotus1-2-3亡き今も、バグを引きずったままExcelの中に生きながらえている不思議な関数です。

Excelの関数でないためか、普通ならセルに関数を入力する途中で出てくる引数のヒントが無く、数式バーのfxをクリックすると出てくる「関数の挿入」にもDATEDIFはありません。
最近のExcelのヘルプはインターネットに繋がるのでDATEDIF関数の説明を見ることが出来ますが、以前のExcelではヘルプドキュメントの中にDATEDIF関数が無く、知る人ぞ知る関数でした。

では、年齢を計算してみましょう。



1985年6月21日生まれの人は2016年6月20日には何歳でしょう?
一般的には誕生日の前なので「まだ30歳」と思うかもしれませんが、日本の法律では誕生日の前日に歳をとるので法的にはもう31歳です。

また、2016年6月1日から1年契約の満了日は普通に考えると2017年5月31日ですよね。
上図の3行目、そうはなっていません。

DATEDIFはAとBの間の日数をカウントしているので、満年齢、契約期間などを計算するときはBの日付に+1しましょう。



勤続年数を計算するのにも使えます。その場合、単位"YM"を使うか、期間の月数"M"÷12を使うか、用途によって使い分けましょう。

では、総務人事担当者のお役に立てれば幸いです。

★これまでの連載はこちら
●総務人事の役に立つExcel技:文字列の引算(2)
http://www.trust-family.co.jp/wgs/blog/v/303/
●総務人事の役に立つExcel技:文字列の引算(1)
http://www.trust-family.co.jp/wgs/blog/v/299/
●総務人事の役に立つExcel技:文字列の足算
http://www.trust-family.co.jp/wgs/blog/v/296/



このページのトップへ