【Excel】指定期間の年月数を求め「○年○か月」と表示する(DATEDIF関数)|Excel 一般 |
社員の勤続年数を求めたいときや、契約開始日からの経過期間を知りたいときなど、指定した2つの日付の期間の年数や月数を算出したい場合があります。そのようなときに便利なのがDATEDIF関数です。DATEDIF関数は、年数や月数だけでなく、1年に満たない月数も同時に求めることができます。また「年月表示」に対応しているため、実務でよく使われる「〇年〇か月」のようにわかりやすく表示させることもできます。人事や労務管理を自動化して作業時間を短縮したい方は必見です。
DATEDIF関数は、開始日と終了日を指定することで、年単位・月単位・日単位の差を取得できる関数です。DATEDIF関数の構造は以下のとおりです。
=DATEDIF(開始日,終了日,単位)
単位には "Y"(年)、"M"(月)、"D"(日)などがあります。年月の差を表示したい場合は、複数のDATEDIF関数を組み合わせることで「〇年〇か月」の形式に整えることが可能です。
例えば、B2に入社日が入力されているとします。C2に勤続年数を表示します。今日の日付は、「TODAY()」で自動的に取得することができます。
開始日:B2
終了日:今日(TODAY())
単位:年(Y)
この場合、DATEDIF関数は次のようになります。
=DATEDIF(B2,TODAY(),"Y")

例えば、サブスクリプション契約の契約月数を求めます。C2に契約日が入力されているとき、D2に月数を表示します。
数式は次のようになります。
=DATEDIF(C2,TODAY(),"M")

例えば、イベントまでの残り日数を表示してカウントダウンすることができます。B2にイベント日が入力されているとき、C2に残り日数を表示します。数式は次のようになります。
=DATEDIF(TODAY(),B2,"D")

勤続年数を「○年○か月」で表示する
入社日から本日までの年月を「○年○か月」と表示するにはどうしたらいいでしょう。年は単位:Yで算出できますが、月の単位をMで指定すると「入社日から満○か月」になってしまいます。DATEDIF関数の2つの日付の間の「年を除いた月数差」を求めるには”YM”オプションを使用します。
例えば、B列に入社日が入力されているとき、C列に勤続年月を表示する場合を考えます。
C2セルの数式は次のようになります。
=DATEDIF(B2,TODAY(),"Y")&"年"&DATEDIF(B2,TODAY(),"YM")&"か月"

「○年○か月」と表示するときのポイントは、以下のようにパーツごとに考えることです。
1.年をDATEDIF関数で算出する
2.月をDATEDIF関数のYMオプションで算出する
3.算出した年と月、文字列の ”年” と ”か月” を、文字列を結合する「&」でつなげる
DATEDIF関数は、[関数の挿入]や[関数の貼り付け]ダイアログの関数名一覧には表示されない関数のため、利用する際は直接数式バーに入力してください。