HOME > 即効テクニック > Excel 一般 > 数式と関数関連のテクニック > 【Excel】指定期間の年月数を求め「○年○か月」と表示する(DATEDIF関数)

【Excel】指定期間の年月数を求め「○年○か月」と表示する(DATEDIF関数)|Excel 一般

数式と関数関連のテクニック

【Excel】指定期間の年月数を求め「○年○か月」と表示する(DATEDIF関数)

(Excel 2016/2019/2021/2024/365)

社員の勤続年数を求めたいときや、契約開始日からの経過期間を知りたいときなど、指定した2つの日付の期間の年数や月数を算出したい場合があります。そのようなときに便利なのがDATEDIF関数です。DATEDIF関数は、年数や月数だけでなく、1年に満たない月数も同時に求めることができます。また「年月表示」に対応しているため、実務でよく使われる「〇年〇か月」のようにわかりやすく表示させることもできます。人事や労務管理を自動化して作業時間を短縮したい方は必見です。

DATEDIF関数の基本構文

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")

カウントダウンの日数を求める

DATEDIF関数の応用

勤続年数を「○年○か月」で表示する
入社日から本日までの年月を「○年○か月」と表示するにはどうしたらいいでしょう。年は単位:Yで算出できますが、月の単位をMで指定すると「入社日から満○か月」になってしまいます。DATEDIF関数の2つの日付の間の「年を除いた月数差」を求めるには”YM”オプションを使用します。

例えば、B列に入社日が入力されているとき、C列に勤続年月を表示する場合を考えます。
C2セルの数式は次のようになります。

=DATEDIF(B2,TODAY(),"Y")&"年"&DATEDIF(B2,TODAY(),"YM")&"か月"

DATEDIF関数の応用

「○年○か月」と表示するときのポイントは、以下のようにパーツごとに考えることです。
1.年をDATEDIF関数で算出する
2.月をDATEDIF関数のYMオプションで算出する
3.算出した年と月、文字列の ”年” と ”か月” を、文字列を結合する「&」でつなげる

動画でさらに理解&身につく!要チェック

補足

DATEDIF関数は、[関数の挿入]や[関数の貼り付け]ダイアログの関数名一覧には表示されない関数のため、利用する際は直接数式バーに入力してください。

関連ページ

「Excel 一般機能」の即効テクニック人気記事