エクセル 年齢 計算
電卓で年齢を計算していませんか?エクセルなら1つの関数で一発解決!DATEDIFやYEARFRACなどの関数を使った年齢計算の方法を、基礎から応用まで分かりやすく解説します。

エクセル 年齢 計算
先週、友人の張さんから連絡がありました。会社で従業員の年齢を集計する必要があるんだけど、200人以上いて、電卓で1人ずつ計算していて、もう限界だって。聞いて思わず笑っちゃいました。エクセルなら1つの関数で解決できるのに、手動で計算してるの?
今日は、エクセルで年齢を計算する方法を全部まとめて紹介します。基本的な方法から、ちょっと応用編まで、読んだらすぐ使えるように説明しますね。
方法1:DATEDIF関数(最も一般的、人事部でよく使われる)
これが一番定番の方法で、私も普段よく使っています。
数式:__CODE_0__
例えば、A2セルに生年月日「1990-05-15」が入っているとして、B2セルに数式を書きます:
=DATEDIF(A2,TODAY(),"Y")
Enterキーを押せば、年齢が表示されます。
ここで注意点:DATEDIF関数はエクセルでは非表示になっていて、関数リストには出てきません。でも、直接入力すれば使えます。マイクロソフトの公式ドキュメントにも載っているのに、なぜか関数ウィザードには表示されないんですよね。
応用編:「○歳○ヶ月」という形式で表示したい場合は、こう書きます:
=DATEDIF(A2,TODAY(),"Y")&"歳"&DATEDIF(A2,TODAY(),"YM")&"ヶ月"
これで「34歳8ヶ月」という形式で表示されます。従業員の履歴書を作る時なんかに便利です。
方法2:YEARFRAC関数(小数点まで正確に)
保険や勤続年数を計算する時など、より正確な年齢が必要な場合は、YEARFRACの方が適しています。
数式:__CODE_0__
先ほどの例で言うと:
=YEARFRAC(A2,TODAY(),1)
この関数は年数を返しますが、小数点付きです。例えば34.67年なら、34歳8ヶ月くらいですね。
第3引数の「1」って何? これは計算基準で、1は「実際の日数÷実際の日数」を意味し、最も正確です。0にすると「実際の日数÷365」になり、精度は落ちますが計算は速くなります。
方法3:YEAR関数で引き算(最もシンプル、でも精度は低め)
この方法が一番シンプルで、ざっくりとした計算に向いています:
数式:__CODE_0__
=YEAR(TODAY())-YEAR(A2)
でもこの方法には問題があります:年だけを見て、月や日は見ません。例えば、1990年12月31日生まれの人がいて、今日が2025年1月1日だとすると、この数式では35歳になりますが、実際には34歳の誕生日を迎えたばかりです。
なので、この方法は「ざっくり計算」にしか向いていません。正式な表を作る場合は、前の2つの方法を使いましょう。
あまり知られていない小技:誕生日前の処理
これ、結構みんな困るポイントなんです。例えば、1990年5月15日生まれの人がいて、今日が2025年1月10日だとします。まだ今年の誕生日を迎えていないので、実際の年齢は34歳で、35歳ではありません。
DATEDIFなら自動でこのケースを処理してくれます。今日が誕生日を過ぎているかどうかを判断してくれます。でも、YEARで引き算する方法だと、間違った結果になります。
より安全な書き方:
=IF(DATEDIF(A2,TODAY(),"Y")<0,0,DATEDIF(A2,TODAY(),"Y"))
この数式は、計算結果が負の数(例えば生年月日が未来)の場合、0を表示し、そうでなければ通常通り年齢を表示します。
一括計算:200人分を一気に処理
これが張さんが一番必要としていた機能です。A列に名前、B列に生年月日、C列に年齢を表示するとします。
1. C2セルに数式を入力:=DATEDIF(B2,TODAY(),"Y")
2. Enterキーを押すと、1人目の年齢が表示されます
3. C2セルを選択して、右下の角にマウスを合わせ、黒い十字になったらダブルクリック
4. 列全体に自動で数式がコピーされ、200人分の年齢が一瞬で計算されます
ダブルクリックが効かない場合は、データの途中に空行があるかもしれません。その場合は、手動で下までドラッグするか、C2からC201まで選択してCtrl+D(下方向にコピー)を押してください。
特殊な日付形式の処理
システムからエクスポートした日付がテキスト形式になっていることがあります。例えば「1990/5/15」や「1990-5-15」などで、エクセルが認識できない場合があります。
解決方法:まずDATEVALUE関数で変換します:
=DATEDIF(DATEVALUE(B2),TODAY(),"Y")
それでもダメな場合は、日付形式の問題かもしれません。こんな方法も試してみてください:
=DATEDIF(--B2,TODAY(),"Y")
--(マイナス2つ)は、強制的に数値に変換するショートカットです。エクセルは日付テキストを日付シリアル番号に変換してくれます。
よくある質問:#NUM!エラーが出るのはなぜ?
#NUM!エラーが出る場合は、だいたい以下のいずれかが原因です:
1. 生年月日が今日より未来:日付が間違っていないか確認してください
2. 日付形式が正しくない:日付がテキストとして認識されています。上で説明した方法で変換してみてください
3. セルの書式設定の問題:セルを右クリック→セルの書式設定→日付を選んで、標準的な形式を選んでください
まとめ
エクセルで年齢を計算する方法は、実はいくつかあります。一番シンプルで確実なのはDATEDIF関数を使う方法です。200人分のデータでも、数式を1つ作ってコピーするだけで一瞬で計算できます。
もし、もっと詳しく年齢計算について知りたい、またはオンラインで簡単に年齢を計算したいという方は、もぜひ試してみてください。生年月日を入力するだけで、正確な年齢をすぐに計算できます。
