DATEDIF関数の使い方|生年月日から年齢、入社日から勤続年数
※写真はイメージです
書き方はこれだけ
=DATEDIF(始まりの日, 終わりの日, "単位")2つの日付の間が、何年・何か月・何日あるかを出します。年齢は "Y"、勤続年数の「か月」の端数は "YM"です。ちょっとクセがあって、DATEDIFは関数の一覧(fxボタン)に出てこないので、自分で打ち込みます。
この図の表をExcelファイルでダウンロード(問題と答えのシートつき)
単位の指定
| 単位 | 数えるもの | 使う場面 |
|---|---|---|
| "Y" | 満何年 | 年齢・勤続年数 |
| "M" | 満何か月 | 契約の月数 |
| "D" | 何日 | 日数(引き算でも同じ) |
| "YM" | 1年未満の端数の月 | 「○年○か月」の○か月 |
| "MD" | 1か月未満の端数の日 | 結果がずれることがあるので使わないほうが安全 |
勤続年数を「○年○か月」で出す
"Y"、残りの月は "YM"。2つを =B2&"年"&C2&"か月" でつなげます。有給休暇や退職金の計算は、会社の規則で「○日を1か月とする」のように数え方が決まっていることがあります。式で出した数字が規則と合っているとは限らないので、先に規則を確かめてから作ってください。
うまくいかないとき
1#NUM! になる
始まりの日が終わりの日より後になっています。
直し方引数の順番を「古い日付, 新しい日付」にします。
2#VALUE! になる
日付が文字で入っています(「2026.11.9」など)。
直し方「2026/11/9」の形で入れ直すか、DATEVALUEで日付に直します。
3fxボタンの一覧にない
DATEDIFは互換のために残っている関数で、一覧に表示されません。
直し方セルに直接 =DATEDIF( と打ち込めば使えます。
サンプルファイルで試す
黄色のセルにDATEDIFの式を入れて、「答え」のシートと比べてください。
よくある質問
エクセルで年齢を計算するには?
=DATEDIF(生年月日のセル,TODAY(),"Y") で、今日時点の満年齢が出ます。
DATEDIFが見つかりません
関数の一覧には出てきませんが、セルに直接打ち込めば使えます。
Googleスプレッドシートでも使えますか?
はい。DATEDIFはスプレッドシートでも使え、一覧にも出てきます。
一緒に覚えたい関数・操作
このページについて
操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報