Excelテクニック

エクセル 年齢 計算

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

投稿者 Editorial Team2025/12/261 min read 分で読める
エクセル 年齢 計算

エクセル 年齢 計算

先週、友人の張さんから連絡がありました。会社で従業員の年齢を集計する必要があるんだけど、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つ作ってコピーするだけで一瞬で計算できます。

もし、もっと詳しく年齢計算について知りたい、またはオンラインで簡単に年齢を計算したいという方は、もぜひ試してみてください。生年月日を入力するだけで、正確な年齢をすぐに計算できます。

関連記事

More from Excelテクニック

もっと見る

すべて表示

最新記事

最新記事を発見

すべて表示