エクセルで年齢を生年月日から計算する!注意点を知って賢く使おう
エクセルで年齢を生年月日から計算する方法を知っていますか?
一見シンプルに思えますが、実は計算方法によって結果が変わることもあり、注意が必要です。
たとえば、単純な引き算では正確な年齢を求められず、「DATEDIF関数」や「YEARFRAC関数」を活用するのが一般的です。
しかし、これらの関数にも落とし穴があり、誕生日が未到達の場合やうるう年の影響を考慮しないと、誤った結果が出ることも。
この記事では、エクセルで正確に年齢を求める方法を手順に従ってお届けし、合わせて、注意点を紹介します。
日常業務やデータ管理の精度を上げるために、ぜひ参考にしてください!
エクセルで年齢を生年月日から計算する
まずは、エクセルで年齢を生年月日から計算する方法を紹介しましょう。
- DATEDIF関数
- YEARFRAC関数
エクセルの年齢計算では、始めにDATEDIF関数があげられ、その代替策としてYEARFRAC関数が示されます。
ここでは、この二つの関数を並行で紹介していきます。
まずは、それぞれの関数の引数を含めた書き方をご紹介します。
=DATEDIF(開始日, 終了日, "Y")
=YEARFRAC(開始日, 終了日, 1)
この書き方で、開始日から終了日までの満年齢を求めることができます。
実際に例を出して確認しましょう。
ベースは次のシ-トです。

誕生日を1990/7/15とし、今日の日付2025/4/3としました。
これで、DATEDIFとYEARFRACの隣のセルに、それぞれの関数を書いて満年齢を出してみましょう。
DATEDIF関数
まずはDATEDIF関数を書きます。
セルB4にカーソルを持ってきます。

「=DATEDIF(」と入力します。

セルB1をクリックします。

「,」入力後、セルB2をクリックします。

「,"Y")」を入力します。

Enterキーを押すと、満年齢34が表示されました。

セルB4にカーソルを持ってくると、DATEDIF関数がセットされていることが分かります。

YEARFRAC関数
次にYEARFRAC関数を書いてみましょう。
セルB5にカーソルを持ってきます。

メニューの「fx」をクリックします。

「関数の挿入」画面が表示されます。関数の検索に「YEARF」を入力して「検索開始」をクリックします。

「関数名」に「YEARFRAC」が表示されますので「OK」をクリックします。

「関数の引数」画面が表示されるので、開始日にカーソルをセットしてセルB1をクリックします。

終了日にカーソルをセットしてセルB2をクリックします。

基準にカーソルをセットして「1」を入力し「OK」をクリックします。

セルB5に満年齢34.718686が表示されました。式には、YEARFRAC関数がセットされていることが分かります。

小数点を消しましょう。
「=YEARFRAC・・・」の「=」の後ろに「ROUNDDOWN(」と入力します。

次に、関数の最後に「,0)」と入力します。

Enterキーを押すと、セルB5に満年齢34が入りました。

セルB5に戻ると、式には、ROUNDDOWN関数を追加したYEARFRAC関数がセットされていることが分かります。

以上で、DATEDIF関数、YEARFRAC関数による年齢計算は完了です。
DATEDIF関数、YEARFRAC関数の注意事項
ここでは、DATEDIF関数(以降DA)、YEARFRAC関数(以降YE)の注意事項を述べておきます。
- (DA・YE)1900年1月1日より前の年齢は計算できない
- (DA)「関数の挿入」からは利用できない
- (DA)バージョンが低いと使えない?
それぞれの注意事項を細かく見ていきます。
(DA・YE)1900年1月1日より前の年齢は計算できない
エクセルは1900年より前の日付を使った計算はできません!
例えば、1900年以前に生まれた偉人の生誕何年かとか、創業が1900年より前の老舗企業が何周年かなどには使えません。
織田信長の生年月日は1534年6月23日ですが、これを先程のシートに入れてみると「#VALUE!」のエラーになってしまいます。

榮太樓本舗の操業年を見ると1857年となっていますので、先程のシートに入れてみる(日付は4/1)と、上記と同様のエラーとなります。

(DA)「関数の挿入」からは利用できない
YEARFRAC関数は、上記でやったように、「関数の挿入」で探しましたが、datedifと入れて検索します。

すると、こんな結果です。

でもって、DATEで検索し直したところ、検索結果にはDATEDIFがないんですよ。

DATEDIF関数は、もともと、エクセルの関数ではないんですよ。
昔、WINDOWSではないOSがあった時代の表計算ソフト「LOTUS1-2-3」の関数をエクセルで使えるようにしたんですな!
(DA)バージョンが低いと使えない?
エクセルのバージョンが古い(例えば、Excel 2010以前のバージョン)とDATEDIF関数は使えません。
と言っているサイトが散見されますが、Excel2007で検証しているサイトも見えますし、下記のような答えもあるし、どこまで正しいのかわからないのが実情です。
前世紀のバージョンでもdatedif関数は使えます。関数一覧に出なくてもね。
Grumpy_the_Dwarfさん|yahoo!知恵袋
冒頭で示した形で書いても計算されないようなら、そのバージョンは使えないと考えればいいかな。
※60爺の作成したエクセルの記事について、全部まとめた記事を追加しました。役に立つ内容が満載ですので、ちょっとご覧ください。
最後に
エクセルで生年月日から正確に年齢を計算するには、適切な関数を選ぶことが重要です。
単純な引き算では誤差が生じるため、「DATEDIF関数」や「YEARFRAC関数」を活用しましょう。
引数のセットに注意すれば、簡単に年齢が求められます。「YEARFRAC関数」は、ちょっと工夫が必要でしたが。
本記事で紹介した方法を活用し、業務やデータ管理に役立ててください。
エクセルの機能を正しく理解し、計算ミスを防ぎながら、効率的に年齢を求めましょう!
■追記:エクセルをテーマに記事をいくつか書いています
ディスカッション
コメント一覧
まだ、コメントがありません