Excel中級者

【Excel】誕生日から年齢を自動計算する方法|DATEDIF・TODAYの使い方

しんたろ。

Excelで誕生日から年齢を出すなら、まず覚える式は =DATEDIF(生年月日,TODAY(),”y”) です。満年齢を自動で計算できるため、名簿、会員管理、家族の誕生日一覧、社内の年齢確認表などにそのまま使えます。

この記事でわかること
  • 誕生日から現在の満年齢を自動計算する式
  • DATEDIF関数の単位 y / ym / md の使い分け
  • 誕生日当日・未来日・空白セルで起きるエラー対策
  • 誕生日一覧表を管理しやすくする実務向けテンプレート
目次

結論:満年齢はDATEDIFで計算する

生年月日がA2セルに入っている場合、現在の満年齢は次の式で求められます。

=DATEDIF(A2,TODAY(),"y")

TODAY() は今日の日付を返す関数です。ブックを開いた日付に合わせて結果が更新されるため、毎年手で年齢を書き換える必要がありません。

Microsoft公式サポートでも、日付同士の差を年・月・日で計算する方法としてDATEDIFが案内されています。詳しく確認したい場合は Microsoft公式のDATEDIF解説 を参照してください。

誕生日一覧表の作り方

まずは生年月日と年齢の列を分けて作ります。後から並べ替えやフィルターを使いやすくするため、1人1行の表にしておくのがポイントです。

A列B列C列
名前生年月日満年齢
田中さん1990/4/10=DATEDIF(B2,TODAY(),"y")
佐藤さん1985/12/3=DATEDIF(B3,TODAY(),"y")

B列の生年月日は、文字列ではなく日付として入力してください。見た目が日付でも、文字列になっていると計算できないことがあります。

DATEDIFの単位と使い分け

DATEDIFの第3引数には、どの単位で差を出すかを指定します。年齢計算でよく使うのは次の3つです。

単位意味使いどころ
"y"満年数満年齢を出す
"ym"年を除いた月数何歳何か月を出す
"md"月を除いた日数何歳何か月何日を出す

年齢だけなら "y" で十分です。月数や日数まで表示したい場合は、次のように文字列を結合します。

=DATEDIF(B2,TODAY(),"y")&"歳"&DATEDIF(B2,TODAY(),"ym")&"か月"
実務では「満年齢」だけでよい場面が多いです。月数や日数まで出すと見た目は詳しくなりますが、一覧表では読みにくくなるため、用途に合わせて分けましょう。

次の誕生日・残り日数も出す

誕生日一覧では、年齢だけでなく「次の誕生日」や「あと何日」も出せると便利です。

今年の誕生日を出す

生年月日がB2にある場合、今年の誕生日は次の式で作れます。

=DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))

次の誕生日までの日数を出す

今年の誕生日が過ぎている場合は来年の誕生日を見る必要があります。次の式なら、次に来る誕生日までの日数を出せます。

=IF(DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))>=TODAY(),DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))-TODAY(),DATE(YEAR(TODAY())+1,MONTH(B2),DAY(B2))-TODAY())

誕生日が近い人だけを抽出したい場合は、この残り日数列で昇順に並べ替えます。

よくあるエラーと対処法

空白セルで変な年齢が出る

生年月日が空白のまま式だけ入っていると、意図しない結果になることがあります。空白なら空白を返すようにしておくと安全です。

=IF(B2="","",DATEDIF(B2,TODAY(),"y"))

未来の日付で#NUM!になる

生年月日が今日より後の日付になっていると、開始日が終了日より後になるためエラーになります。入力ミスを見つけやすいように、未来日なら注意文を出す式にしておきます。

=IF(B2>TODAY(),"生年月日を確認",DATEDIF(B2,TODAY(),"y"))

日付が文字列になっている

セルの左上に緑の三角が出ていたり、日付が左寄せになっていたりする場合は、文字列扱いの可能性があります。日付として認識されているか確認し、必要なら「データ」→「区切り位置」やDATEVALUE関数で日付に変換してください。

よくある質問

Q. Excelで誕生日から年齢を出す一番簡単な式は?

生年月日がA2にある場合は =DATEDIF(A2,TODAY(),"y") が基本です。満年齢だけを出したいなら、この式が最もシンプルです。

Q. DATEDIF関数が候補に出ないのはなぜ?

DATEDIFは古いブックとの互換性のために残っている関数で、候補に表示されない場合があります。候補に出なくても、セルに直接入力すれば使えます。

Q. 誕生日当日に年齢は増えますか?

はい。DATEDIF(生年月日,TODAY(),"y") は満年齢を返すため、誕生日当日になると年齢が1つ増えます。

Q. 年齢だけでなく、何歳何か月何日まで表示できますか?

できます。年は "y"、年を除いた月は "ym"、月を除いた日は "md" を組み合わせます。ただし "md" は条件によってずれやすいため、厳密な日数管理では別式も検討してください。

IF関数の使い方|空白や条件分岐を組み合わせる方法

Excelでカレンダーを自動作成する方法

Excelで祝日を自動計算する方法

Excelで時間を計算・変換する方法

Excel・GAS・WordPressまわりの作業を整理したい方へ

記事の内容を自社の業務に合わせて自動化したい場合は、要件整理から実装まで相談できます。

無料相談はこちら

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました