Excelで誕生日から年齢を自動計算!

Excel小技part3

Excelで誕生日から年齢を自動計算!DATEDIF関数で毎年更新不要に

社員や顧客の年齢、毎年4月になるたびに手計算で更新していませんか?誕生日が来るたびに「あれ、この人何歳だっけ?」と確認するのは大変ですよね。

ExcelのDATEDIF関数を使えば、誕生日を入力するだけで、いつでも正確な満年齢を自動で表示できます。この記事を読めば、うるう年も考慮した正確な年齢計算式を3分でマスターし、二度と手計算に戻れなくなります。

誕生日からの年齢計算、毎年やるのはもう卒業!

初心者くん

プロさん!顧客リストの年齢を更新し忘れてて大慌てです…!誕生日リストはあるんですけど、毎年全員分を計算し直すのが本当に大変で…。つい焦って「=(TODAY()-誕生日セル)/365」とかやっちゃって、微妙にズレるんです!

プロさん

おやおや、慌ててはいけませんよ、初心者くん。そのお悩み、Excelが解決してくれます。DATEDIF(デイトディフ)関数という、知る人ぞ知る達人がいるのですよ。この関数を使えば、誕生日さえあれば、いつでも正確な満年齢を自動で計算してくれるのです。

初心者くん

デイト…ディフ?聞いたことないです!関数の候補にも出てこないような…?本当にそんな便利なものが存在するんですか?

プロさん

ふふふ、そうなんです。DATEDIF関数は、過去の表計算ソフトとの互換性のために残されている機能なので、入力候補には表示されないのですよ。でも、ちゃんと使えますから安心してください。なぜ単純な割り算ではダメなのか、その理由も含めて丁寧にお伝えしますね。

DATEDIF関数で年齢を自動計算する3ステップ

早速、DATEDIF関数を使って年齢を計算してみましょう。手順は驚くほど簡単です。

  1. データの準備
    A列に氏名、B列に誕生日を入力した表を用意します。C列には「年齢」という見出しを作っておきましょう。
  2. DATEDIF関数の入力
    年齢を表示したいセル(例: C2)に、次の関数を直接入力します。入力候補には出ないので、スペルミスに注意してください。
  3. =DATEDIF(B2, TODAY(), "Y")
  4. 数式のコピー
    C2セルのフィルハンドル(右下の■)をダブルクリックするか、下までドラッグして、全員分の年齢を計算します。これだけで常に最新の年齢が表示される表が完成です。
DATEDIF関数の仕組み:DATEDIF(開始日, 終了日, 単位)
  • 開始日: 誕生日が入ったセル(例: 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() を使って全員の年齢を計算してみましょう。

コメント