Excel(エクセル)の社員名簿や顧客リストを管理する際、生年月日から年齢を算出し、常に最新の状態に自動更新できると便利です。ExcelのDATEDIF関数とTODAY関数を組み合わせれば、生年月日から現在の満年齢を自動で計算できます。この記事では、年齢計算の基本の数式の書き方から、空白セルや入力ミスによるエラーを防ぐための対策について解説します。
- 指定した2つの日付の期間を「満年数」で計算し、常に最新の年齢を取得する数式が分かります。
- オートコンプリートに表示されないDATEDIF関数のスペルを手入力して正しく記述するコツが学べます。
- 生年月日セルが空欄のときに異常な年齢が表示されるバグや、各種数式のエラーを防ぐ解決策が身につきます。
- 年齢の後ろに「歳」という文字列を安全に結合し、名簿や帳票の見やすさを綺麗に整える方法が理解できます。
生年月日から年齢を自動計算する基本手順
社員リストなどの生年月日データを基にして、現在の満年齢を瞬時に割り出すための基本的な数式の設定方法です。
DATEDIF関数の基本構文と注意点
期間を計算するための関数をセルに直接手動入力し、第一引数から第三引数までを順番に指定する設定手順です。
step
1年齢を表示させたいセルを選択し、数式バーまたはセルに直接 =DATEDIF( とキーボードから入力します。
step
2開始日として生年月日が入っているセルを選択し、続けてカンマ , を入力します。
step
3第二引数に終了日を指定するため TODAY() を入力し、カンマの後に満年数を示す "Y" をダブルクォーテーションで囲んで入力します。
TODAY関数とネストして年齢を自動更新する数式
今日の日付を常に取得する関数を組み込み、ファイルを開いた日時点の年齢を自動で計算させる仕組みです。
※注意:詳細は、Microsoftの公式ヘルプ「DATEDIF 関数 – Microsoft サポート」も合わせて参照してください。
| 単位引数 | 具体的な返却データと意味 | 主な用途 |
|---|---|---|
| “Y” | 期間内の満年数を返します | 満年齢の算出や勤続年数の計算 |
| “M” | 期間内の満月数を返します | 月齢の計算や契約月数のカウント |
| “D” | 期間内の日数を返します | 単純な経過日数の計算や納期管理 |
🤔 あなたはどちらの方法で解決しますか?
- 自力で体系的に学びたい方:実践的なオンライン動画講座で、設定から応用まで効率よく学習しましょう。
- プロに今すぐ解決してほしい方:面倒な設定代行やトラブルシューティングを、専門家に格安で丸投げできます。
オンライン学習でスキルアップ!
UdemyならExcelの関数入力テクニック、IFやDATEDIFの応用ネスト数式、見やすい名簿テーブルデザイン構築、自動年齢更新マクロまで動画で体系的に学べます。返金保証付きで安心。
Excelの年齢自動更新シートや、入社年月日からの勤続年数・月数を自動算出する名簿機能を自在に構築し、データ管理を効率化する数式作成スキルを動画等で養うことは非常に効率的です。
こうしたスマートな自動日付計算や、顧客データの年齢層別グループ化に用いる便利なネスト数式は、手作業での転記漏れや古い年齢データの残留による確認の手間を劇的に削減します。
しかしながら、生年月日を入力していない新規登録者セルに「120歳」といった異常な年齢が算出されてしまったり、開始日と終了日の前後関係が狂って「#NUM!」エラーがシート全体に広がることもあります。
このような数式のエラー原因特定や、データベースから年齢情報を自動取得して帳票レイアウトに反映するマクロ開発、既存の顧客管理シート of 動作不具合 of 改修を専門家に直接丸投げしたい場面もあります。
自分でネット of 解説サイトや古いマニュアルを調べて試行錯誤を繰り返す時間と、Excel of 数式設計に長けたプロに安価で相談して一瞬で動くシートに修復してもらう快適さを比較し判断してください。
DATEDIF関数は入力候補に表示されない特殊な仕様があるからこそ、正しい記述方法と空白セルの処理ルールを理解しておくことが、不具合を起こさない堅牢な資料作成への確実な道になります。
シートの表示がおかしいなと感じたときも手順に沿って数式をチェックし、どうしても解決できない不具合はプロを頼って、いつでも正確な年齢が計算できる快適なデータ環境を整えましょう。
設定やトラブル解決をプロに依頼!
ココナラでは、Excelの数式エラー修正・名簿シート作成代行、大量データの不整合チェック、自動集計マクロ開発を専門家に直接依頼・相談できます。
【エラー対策】生年月日セルが空欄のときの不具合を解決する方法

名簿に未入力の行がある場合に、DATEDIF関数が空白を基準日(1900年1月0日)として誤認し、異常な高年齢を表示してしまう問題の解決策です。
※注意:以前解説したExcelで印刷できない場合の対処法と同様に、事前に入力データの状態を確認しておく必要があります。
DATEDIF関数の外側に IF 関数を重ねて空白を判定し、生年月日が未入力のときは年齢欄も空にする数式を設定します。
IF関数をネストして未入力セルを判定する手順
対象セルが生年月日なしの場合に、DATEDIF関数の実行を自動でスキップしてセルを非表示(空白)にする設定です。
step
1数式を入力するセル(例:B2)を選択し、数式バーに =IF(A2="","", と入力して生年月日セル A2 の空白判定を置きます。
step
2空白でなければ実行する処理として DATEDIF(A2, TODAY(), "Y") をカンマの後に続けて記述します。
step
3最後にIF関数の閉じカッコ ) を入力して数式を完成させ、Enterキーを押してコピーします。
生年月日が空欄のときに年齢欄をクリアにする数式
空白判定を入れることで、名簿を下にコピーしても不要な年齢を表示させず、画面を綺麗な空白のままで管理できます。
具体的な完成数式は =IF( A2 = "" , "" , DATEDIF( A2 , TODAY() , "Y" ) ) となり、アンパサンドを使う場合もスペースを空けます。
この数式を名簿の下方向へオートフィルでコピーしておけば、新メンバー追加時に生年月日を入れた瞬間だけ年齢が自動表示されます。
【応用】DATEDIF関数の#NUM!エラーを回避する対処法

生年月日に誤って「今日より未来の日付」が入力されている場合に発生する #NUM! エラーの対策手順です。
生年月日が今日より未来の場合の処理手順
入力ミスによるエラー表示を防ぎ、管理者に対して日付入力を再確認するようにメッセージを出して回避する設定です。
step
1年齢欄のセルを選択し、IF関数の中に生年月日が今日より大きいかどうかの条件式 A2>TODAY() を記述します。
step
2条件が一致した(未来の日付である)場合の返り値として、"日付を確認" などの警告テキストを指定します。
step
3未来でなければ通常の計算を行うように DATEDIF(A2, TODAY(), "Y") をネストして数式を終了します。
よくある質問(FAQ)
Excelの年齢自動計算機能や、DATEDIF関数の挙動に関してよく寄せられる質問をまとめました。
Q1: =DATE...まで入力しても候補に出てこないのですが?
A1. DATEDIF関数はExcelの隠し互換関数のため、入力中に候補(オートコンプリート)が表示されません。壊れているわけではありませんので、そのままスペルを最後まで手入力してカッコを開いてください。
Q2: 計算された年齢の後ろに「歳」と表示させる方法はありますか?
A2. 数式の末尾に & "歳" を結合します。 =DATEDIF(A2, TODAY(), "Y") & "歳" のように記号をアンパサンドで繋ぎます。
まとめ
Excelで生年月日から年齢を自動計算するには、DATEDIF関数とTODAY関数を組み合わせて使用します。
未入力セルによる異常値表示を防ぐには、IF関数で事前に空白判定を行ってセルをクリアに保ちましょう。