Excelで誕生日から年齢を自動計算!DATEDIF関数で毎年更新不要に
社員や顧客の年齢、毎年4月になるたびに手計算で更新していませんか?誕生日が来るたびに「あれ、この人何歳だっけ?」と確認するのは大変ですよね。
ExcelのDATEDIF関数を使えば、誕生日を入力するだけで、いつでも正確な満年齢を自動で表示できます。この記事を読めば、うるう年も考慮した正確な年齢計算式を3分でマスターし、二度と手計算に戻れなくなります。
誕生日からの年齢計算、毎年やるのはもう卒業!
初心者くん
プロさん!顧客リストの年齢を更新し忘れてて大慌てです…!誕生日リストはあるんですけど、毎年全員分を計算し直すのが本当に大変で…。つい焦って「=(TODAY()-誕生日セル)/365」とかやっちゃって、微妙にズレるんです!
プロさん
おやおや、慌ててはいけませんよ、初心者くん。そのお悩み、Excelが解決してくれます。DATEDIF(デイトディフ)関数という、知る人ぞ知る達人がいるのですよ。この関数を使えば、誕生日さえあれば、いつでも正確な満年齢を自動で計算してくれるのです。
初心者くん
デイト…ディフ?聞いたことないです!関数の候補にも出てこないような…?本当にそんな便利なものが存在するんですか?
プロさん
ふふふ、そうなんです。DATEDIF関数は、過去の表計算ソフトとの互換性のために残されている機能なので、入力候補には表示されないのですよ。でも、ちゃんと使えますから安心してください。なぜ単純な割り算ではダメなのか、その理由も含めて丁寧にお伝えしますね。
DATEDIF関数で年齢を自動計算する3ステップ
早速、DATEDIF関数を使って年齢を計算してみましょう。手順は驚くほど簡単です。
- データの準備
A列に氏名、B列に誕生日を入力した表を用意します。C列には「年齢」という見出しを作っておきましょう。 - DATEDIF関数の入力
年齢を表示したいセル(例: C2)に、次の関数を直接入力します。入力候補には出ないので、スペルミスに注意してください。 - 数式のコピー
C2セルのフィルハンドル(右下の■)をダブルクリックするか、下までドラッグして、全員分の年齢を計算します。これだけで常に最新の年齢が表示される表が完成です。
=DATEDIF(B2, TODAY(), "Y")
- 開始日: 誕生日が入ったセル(例:
B2) - 終了日: 計算の基準日。
TODAY()を使うと常に「今日の日付」が自動で入ります。 - 単位:
"Y"を指定すると、期間内の満年数(Year)を計算します。
なぜ「(今日-誕生日)/365.25」ではダメなのか?
初心者くんが試した「日数 ÷ 365」や「日数 ÷ 365.25」という計算は、一見正しそうに見えます。しかし、この方法ではうるう年の影響で微妙な誤差が生じ、誕生日当日に年齢が加算されないなど、厳密な年齢計算には向きません。
日本の法律では「誕生日の前日が満了する時(深夜24時)に年をとる」と定められています。DATEDIF関数は、この「満〜年」という考え方で期間を正しく計算してくれるため、誕生日当日にピッタリ年齢が1つ増える、実務で安心して使える結果を返してくれるのです。特に2月29日生まれの方の年齢も、平年に正しく計算できます。
▼計算結果の比較サンプル▼
| 氏名 | 誕生日 | 年齢 (DATEDIF) | 年齢 (単純計算) |
|---|---|---|---|
| 田中 太郎 | 1990/4/15 | 34 | 34.15… |
| 鈴木 花子 | 2000/2/29 | 24 | 24.27… |
| 佐藤 次郎 | 1985/12/31 | 38 | 38.44… |
※単純計算は「=(TODAY()-誕生日)/365.25」で算出した例。小数点以下が表示され、満年齢として扱うにはINT関数などで加工が必要です。
よくある落とし穴と解決策
DATEDIF関数は便利ですが、いくつか注意点があります。慌てずに対処法を覚えておきましょう。
| 現象・エラー | 原因 | 対処法 | 一言メモ |
|---|---|---|---|
| #NUM! エラー | 開始日(誕生日)が終了日(今日)より未来の日付になっている。 | 誕生日の入力ミス(特に年)がないか確認する。 | 未来の誕生日を入力するとエラーになります。 |
| 関数候補に出ない | Excelの仕様(互換性維持のための隠し関数)。 | DATEDIFと手で直接入力する。 |
スペルミスに注意!DATE”D”IFです。 |
| 45021 など大きな数字が表示 | セルの書式設定が「日付」になっている。 | セルの書式設定を「標準」または「数値」に変更する。 | 計算結果は年数を表す「数値」なので、書式を合わせます。 |
| #VALUE! エラー | 誕生日が「2000年1月1日」のように、Excelが日付と認識できない文字列になっている。 | 入力形式を「2000/1/1」のような半角英数に統一する。 | 見た目は日付でも、Excel内部で文字列扱いだと計算できません。 |
まとめ
誕生日からの年齢計算を自動化するポイントを振り返りましょう。
- 誕生日からの年齢計算は
=DATEDIF(誕生日セル, TODAY(), "Y")で自動化できる。 - DATEDIFは入力候補に出ない「隠し関数」だが、手入力すれば問題なく使える。
- 単純な日数割り算より、DATEDIFの方がうるう年などを正確に考慮した「満年齢」を計算できるため、実務では必須。
この関数一つで、毎年の面倒な更新作業から解放され、常に正確なリストを維持できます。
まずは練習です。お手元の人名リストの横に新しい列を作り、=DATEDIF() を使って全員の年齢を計算してみましょう。



コメント