ブログに戻る
3 min read

Excel で年齢を計算する方法 (DATEDIF & YEARFRAC) + 無料テンプレート

DATEDIF、YEARFRAC、TODAY() を使用して生年月日から年齢を計算するステップバイステップの Excel 式。実際の例、トラブルシューティングのヒント、無料のオンライン年齢計算ツールが含まれています。

Excel で年齢を計算する方法 (DATEDIF & YEARFRAC) + 無料テンプレート

Excel での年齢計算は、従業員の記録の管理、顧客の誕生日の追跡、学校データベースの構築など、最も一般的なスプレッドシート タスクの 1 つです。この包括的なガイドでは、単純な年の計算から、年、月、日の正確な年齢の内訳まで、必要なすべての方法を説明しています。

目次

  1. 始める前に: 日付の書式設定基本

  2. 方法 1: DATEDIF – 完全な年齢での年齢

  3. 方法 2: 年、月、および年齢での年齢日

  4. 方法 3: 特定の日付時点の年齢を計算する

  5. 方法 4: YEARFRAC – 年齢を計算する小数

  6. 方法 5: 複数の行の年齢を計算する

  7. ボーナス: 次までの日数誕生日

  8. メソッド比較表

  9. 一般的な問題とソリューション

  10. Excel と Google スプレッドシート

  11. オンライン代替案

  12. よくある質問

始める前に: 日付形式の基本

始める前に数式を使用する場合は、日付が適切にフォーマットされていることを確認してください。 Excel は実際の日付と日付のように見えるテキストを区別し、この違いが重要です。

セルに実際の日付が含まれているかどうかを確認する方法:

  1. セルをクリックして、日付

  2. 数式バーを見てください。数字(45678など)が表示されている場合、それは実際の日付です

  3. テキストが表示されている場合(たとえば、 "01/15/1990")、Excel では文字列として扱われます

テキストを日付に変換します:

日付がテキストとして保存されている場合は、日付を変換します最初:

=DATEVALUE(A2)

次に、結果のセルを日付として書式設定します(右クリック→セルの書式設定→日付)。

重要: ロケールが異なると、日付形式の解釈も異なります。 「01/02/2000」は、1 月 2 日 (米国) または 2 月 1 日 (ヨーロッパ) を意味します。日付が正しく解析されていることを常に確認してください。

方法 1: DATEDIF – 完全な年の年齢

DATEDIF 関数は、Excel で年齢を計算する最も簡単な方法です。 2 つの日付間の完全な年数を返します。

数式:

=DATEDIF(A2, TODAY(), "Y")

どこ:

  • A2] = 日付を含むセル誕生

  • TODAY() = 現在の日付 (更新情報)自動的に)

  • "Y" = 返品完了年

例:

[[[TA G_130]]]

]A

B

日付の生年月日

年齢

156]]]

1990-03-15

=DATEDIF(A2,今日()、 "Y")

[[[TAG_16] 8]]]1985-07-22

=DATEDIF(A3,今日()、 "Y")

[[[TAG_17] 8]]]2000-12-01

=DATEDIF(A4, TODAY(), "Y")

結果(1月現在) 2026):

[[[TA G_195]]][ [[TAG_227]]][[[TAG_2] 37]]]

日付の生年月日

年齢

[ [[TAG_206]]]

1990-03-15

35

[[[TAG_ 216]]]

1985-07-22[[[TAG_ 221]]]

40

2000-12-01

[ [[TAG_232]]]

25

注: DATEDIF は Excel の「隠し」関数です。オートコンプリートには表示されませんが、完全に機能します。手動で入力するだけです。

方法 2: 年、月、日の年齢

正確な年齢が必要な状況(医療記録、法的文書、人事システム)の場合は、完全な年齢が必要になります。

個々の数式:

年: =DATEDIF(A2, TODAY(), "Y")
月: =DATEDIF(A2, TODAY(), "YM")
日: =DATEDIF(A2, TODAY(), "MD")

2 番目のパラメータコード:

  • "Y" = 合計完了年

  • "YM" = 完了後の残りの月数年

  • "MD" = 完了後の残り日数か月

オールインワン フォーミュラ (単一) cell):

=DATEDIF(A2,TODAY(),"Y") & " 年" & DATEDIF(A2,TODAY(),"YM") & " 月" & DATEDIF(A2,TODAY(),"MD") & " days"

出力例: "35 年、10 か月、12 日"

プロフェッショナルな書式設定ラベル:

出力をわかりやすくするには、条件付き書式を追加できます:

=DATEDIF(A2,TODAY(),"Y") & IF(DATEDIF(A2,TODAY(),"Y")=1,"年, ","年, ") & DATEDIF(A2,TODAY(),"YM") & IF(DATEDIF(A2,TODAY(),"YM")=1,"月, ","月, ") & DATEDIF(A2,TODAY(),"MD") & IF(DATEDIF(A2,TODAY(),"MD")=1," 日"," 日")

これにより、単数形と複数形が正しく処理されます (例: "1 年" と "2 年")。

方法 3: 特定の日付の年齢を計算する

今日ではなく特定の日付の年齢を計算する必要がある場合があります。たとえば、イベント時の年齢、登録時の年齢、過去の年齢などです。日付。

数式:

=DATEDIF(A2, B2, "Y")

どこ:

  • A2 = 日付誕生

  • B2 = 基準日 (イベント日、登録日、など)

例: 雇用時の従業員の年齢日付

40]]][[[ TAG_369]]]

2020-03-01

[[[T AG_387]]]

2021-06-15

名前

日付生年月日

入社日

年齢

ジョンを雇うスミス

1988-05-20

=DATEDIF(B2, C2、"Y")

ジェーンドウ

1992-11-15

=DATEDIF(B3, C3、「Y」)

具体的な詳細な内訳日付:

=DATEDIF(A2,B2,"Y") & " 年, " & DATEDIF(A2,B2,"YM") & " 月, " & DATEDIF(A2,B2,"MD") & " days"

方法 4: YEARFRAC – 小数による年齢

年齢を小数として必要な場合 (財務計算、保険数理業務、または科学的応用で一般的)、次を使用します。 YEARFRAC.

式:

=YEARFRAC(A2, TODAY(), 1)

出力例: 35.87 (35 年と約 10.5 歳を意味します)月)

基準オプション (3 番目)パラメータ):

[[ [TAG_434]]]

[[[TAG_48]8]]][[[TAG_494]] ]

実際/365

メソッド

最高

0

米国向け30/360

財務計算(米国)

1

[[[TAG _465]]]

実際/実際

ほとんど年齢的に正確計算

2

[[ [TAG_479]]]

実際/360

銀行計算

3

無視閏年

4

ヨーロッパ30/360

財務計算(EU)

推奨事項:1を使用してください(実際/実際) 年齢の計算にはこれが最も正確です。

整数部分だけを取得するには:

=INT(YEARFRAC(A2, TODAY(), 1))

年齢を 1 に四捨五入するには10 進数:

=ROUND(YEARFRAC(A2, TODAY(), 1), 1)

方法 5: 複数の年齢を計算する行

人々のリスト(従業員、学生、顧客)を扱う場合、全員の年齢を一度に計算する効率的な方法が必要です。

ステップ 1:データ

_554]]][[[TAG_569] ]]]

_593]]]

_607]]]

[[[TAG_6] 21]]]

A

[[ [TAG_562]]]B

C

名前

日付生年月日

年齢

アリスジョンソン

1985-03-22

ボブウィリアムズ

1990-07-14

キャロルデイビス

1978-11-30

デビッドブラウン

1995-02-08

[ [[TAG_636]]]

ステップ2: 最初の行に数式を入力します

セル C2 に次のように入力します:

=DATEDIF(B2, TODAY(), "Y")

ステップ 3: 下にコピーします

  • 選択C2

  • 右下隅の小さな正方形 (塗りつぶしハンドル) をダブルクリックします

  • Excel では、数式がすべての行に自動的にコピーされます。データ

自動テーブルの使用展開:

  1. データ範囲を選択してください (A1:C5)

  2. を押しますCtrl+T でテーブルを作成します

  3. 最初のデータに数式を入力してくださいw の年齢列

  4. Excel では、すべての行と追加した新しい行に自動的に適用されます。後で

年齢カテゴリの式:

年齢をカテゴリにグループ化するには (人口統計に役立ちます)分析):

=IF(DATEDIF(B2,TODAY(),"Y")<18,"マイナー",IF (DATEDIF(B2,TODAY(),"Y")<65,"成人","シニア"))

ボーナス:次の誕生日までの日数

一般的な使用例: 誕生日のリマインダーまたは「誕生日までの日数」計算。

数式:

=DATE(YEAR(TODAY()) + (DATE(YEAR(TODAY()),MONTH(A2),DAY(A2))

やり方works:

  1. 生年月日から今年の誕生日を計算します

  2. 誕生日が既に過ぎている場合年、1 を追加して来年を取得します

  3. 今日の日付を引いて残りを取得します日

出力例: 47 (誕生日までの日数)

代替案: 次の誕生日date

次の誕生日の実際の日付を表示するには:

=DATE(YEAR(TODAY()) + (DATE(YEAR(TODAY()),MONTH(A2),DAY(A2))

メソッドの比較テーブル

[[ [TAG_753]]][[[ TAG_765]]]

出力

[[[TAG_845] ]]

35

メソッド[[[ TAG_759]]]

数式

最高

DATEDIF の場合(年)

=DATEDIF(A2,TODAY(),"Y")[ [[TAG_783]]]

35

シンプル年齢表示

DATEDIF (フル)

=DATEDIF(...) と Y、YM、 MD

35 年、10 か月、12 日

正確レコード

[[[TAG_ 816]]]YEARFRAC

= YEARFRAC(A2,TODAY(),1)

[[[TA G_826]]]35.87

金融/科学ティフィ

[[[TAG_83] 6]]]INT(YEARFRAC)

[[[TAG_841] ]]=INT(YEARFRAC(A2,TODAY(),1))

代替にDATEDIF

[[[ TAG_857]]]おすすめ:

  • ほとんどの場合、DATEDIF と "Y" パラメータを使用します

  • 正確な内訳については、3 つすべてを指定して DATEDIF を使用しますパラメータ

  • 10進数の年齢には、YEARFRACを基準とともに使用します1

一般的な問題と解決策

問題: DATEDIF がautocomplete

解決策: これは正常です。 DATEDIF は、Microsoft が公式に文書化していないレガシー関数です。手動で入力するだけです。2007 年以降のすべての Excel バージョンで機能します。

問題: #VALUE!エラー

原因:

  • 一方または両方のセルに、日付

  • 数式内の空のセル範囲

解決策:

  1. テキストを変換現在まで: =DATEVALUE(A2)

  2. 空のセルのチェック: =IF(A2="", "", DATEDIF(A2, TODAY(), "Y"))

問題: 陰性の結果または #NUM 個です。エラー

原因: 終了日が開始日より前です (例: 未来の生年月日、または日付が間違っています) order)

解決策:

  1. 引数を交換します。 =DATEDIF(B2, A2, "Y") の代わりに =DATEDIF(A2, B2, "Y")

  2. 検証を追加: =IF(A2>TODAY(), "将来の日付", DATEDIF(A2, TODAY(), "Y"))

問題: 数式では代わりにセミコロンが表示されますカンマ

原因: Excel ではヨーロッパのロケール設定が使用されています

解決策: カンマを次のように置き換えますセミコロン:

=DATEDIF(A2; TODAY(); "Y")

問題: 年齢が 1 つずれていますyear

原因: 通常、日付形式の解釈問題

解決策:

  1. 数式内の日付が正しいことを確認してくださいbar

  2. ISO 形式で日付を再入力してください (YYYY-MM-DD)

  3. DATEVALUE を使用して明示的に解析します日付

問題: 数式は機能するがテキストとして表示される

解決策: セルから先頭のアポストロフィを削除するか、数式を削除して数式を再入力してください。等号の前にスペースを入れます。

Excel と Google スプレッドシート

Excel と Google スプレッドシートはどちらも DATEDIF をサポートしていますが、微妙な違いがあります。違い:

[[[TA] G_1003]]][[[TAG_1] 032]]]

年FRAC

機能

Excel

[[[TA]G_1011]]]

Google スプレッドシート

DATEDIFサポート

はい (非表示)

はい (表示されます)オートコンプリート)

[[[TAG_1] 037]]]はい

はい[[[TAG_104] 2]]]

日付解析

ロケール依存

詳細柔軟

[ [TAG_1061]]]今日()

はい[[ [TAG_1066]]]

はい

[[[TAG_10] 71]]]

Googleシート固有:

  • DATEDIF がオートコンプリートに表示されます(とは異なります) Excel)

  • 日付解析は一般的により寛容です

  • 同じ数式構文がほとんどの場合

ヒント: 両方のプラットフォーム間の互換性を最大限に高めるために、常に使用:

  • ISO 日付形式 (YYYY-MM-DD)

  • テキストではなく明示的な日付関数日付

  • 年齢計算用のDATEDIF (どちらでも同様に機能します)

オンライン代替案

スプレッドシートを使用したくないですか?無料の オンライン年齢計算ツール を試して、正確な年齢を年、月、週、日で即座に計算します。数式は必要ありません。生年月日を入力するだけで正確な結果が得られます。

オンライン計算機では次の機能も利用できます。

  • 複数の単位での年齢 (年、月、週、日)

  • 次の誕生日カウントダウン

  • あなたがいた曜日生まれ

  • 合計日数住んでいた

よくある質問

DATEDIFは閏年に正確ですか?

はい。セルに適切に書式設定された日付が含まれている場合、Excel ではうるう年とさまざまな月の長さが自動的に考慮されます。 DATEDIF 関数は 2 月 29 日の誕生日を正しく処理し、閏年の考慮に関係なく年齢を正確に計算します。

DATEDIF と YEARFRAC のどちらの方法が最適ですか?

使用しますDATEDIF きれいな整数 (年、月、日) が必要な場合 - これは、ほとんどのビジネスおよび個人の使用例の標準です。 YEARFRAC は、財務計算、保険数理表、小数年が重要な科学アプリケーションなど、小数値が特に必要な場合に使用します。

年齢は月単位でのみ計算できますか?

はい。 DATEDIF で "M" パラメータを使用します:

=DATEDIF(A2, TODAY(), "M")

これにより、生年月日から誕生日までの合計月数が返されます。

DATEDIF が Excel のオートコンプリートに表示されないのはなぜですか?

DATEDIF は、Microsoft が Lotus 1-2-3 から継承した互換関数です。これは Excel のヘルプ システムに正式に文書化されていないため、オートコンプリートや関数ウィザードには表示されません。ただし、完全に機能しており、広く使用されています。手動で入力してください。

特定の 2 つの日付の間の年齢を計算するにはどうすればよいですか?

TODAY() をターゲットを含むセル参照に置き換えます。 date:

=DATEDIF(A2, B2, "Y")

ここで、A2 は生年月日、B2 は年齢を計算する日付です。

これは古い Excel バージョンでも機能しますか?

はい。 DATEDIF は Excel 97 以降で使用できます。このガイドの数式は Excel 2007、2010、2013、2016、2019、2021、および Microsoft 365 で機能します。

複数の人の年齢を計算するにはどうすればよいですか?

年齢列の最初の行に DATEDIF 式を入力し、塗りつぶしハンドルを下にドラッグしてすべての行にコピーします。あるいは、データを Excel テーブルに変換する (Ctrl+T) と、後で追加する新しい行を含むすべての行に数式が自動的に適用されます。

年齢を計算してカスタム書式で表示できますか?

はい。 DATEDIF と TEXT 関数を組み合わせて連結します:

=DATEDIF(A2,TODAY(),"Y") & "y " & DATEDIF(A2,TODAY(),"YM") & "m " & DATEDIF(A2,TODAY(),"MD") & "d"

出力: "35y 10m 12d"