メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで生年月日から年齢を取得または計算する

Author: Xiaoyang Last Modified: 2025-08-26

Excelワークシートに従業員の生年月日のリストがあり、それぞれの年齢を計算したいとします。Excelには、YEARFRACやDATEDIFなどの便利な関数があり、これらを使用して誕生日から簡単に素早く年齢を取得できます。

doc-get-age-from-birthday-1


YEARFRAC関数を使用して生年月日に基づいて年齢を計算する

Excelでは、YEARFRAC関数を使用して指定された生年月日から年齢を取得できます。一般的な構文は次の通りです:

=YEARFRAC(生年月日, TODAY())
  • 生年月日: 誕生日の日付。
  • TODAY(): この関数は今日の日付を返します。

したがって、以下の数式を空白のセルに入力してください:

=YEARFRAC(B2,TODAY())

そして、この数式を適用したいセルまでフィルハンドルをドラッグすると、すべての年齢が計算され、セルに小数として表示されます。スクリーンショットをご覧ください:

doc-get-age-from-birthday-2

ヒント: YEARFRAC関数を使用した場合、計算結果は小数になります。年齢を整数にするには、INT関数を組み合わせて使用する必要があります。次のようにします:

=INT(YEARFRAC(B2,TODAY()))

これで、年齢が整数で表示されます:

doc-get-age-from-birthday-3


DATEDIF関数を使用して生年月日に基づいて年齢を計算する

DATEDIF関数も誕生日を年齢に変換でき、一般的な構文は次の通りです:

=DATEDIF(生年月日, TODAY(), "y")
  • 生年月日: 誕生日の日付。
  • TODAY(): この関数は今日の日付を返します。
  • y: これは誕生日から現在までの完全な年の数を返します。

では、次の数式を空白のセルに入力またはコピーしてください:

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

これで、生年月日に基づいてすべての年齢が計算されました。スクリーンショットをご覧ください:

doc-get-age-from-birthday-4


生年月日に基づいて年齢を年、月、日単位で計算する

例えば、生年月日から現在までの正確な年齢(何年、何ヶ月、何日)を取得したい場合、DATEIF関数を1つの数式に連結する必要があります。次のようにします:

=DATEDIF(B2,TODAY(),"Y") & " 年, " & DATEDIF(B2,TODAY(),"YM") & " ヶ月, " & DATEDIF(B2,TODAY(),"MD") & " 日"

これで、次のスクリーンショットのような結果が得られます:

doc-get-age-from-birthday-5

ヒント: 上記の数式を使用する際に0年、0ヶ月、0日を無視したい場合は、IF関数を組み合わせて0をテストすることができます。次の数式を使用してください:

=IF(DATEDIF(B2, TODAY(),"y")=0,"",DATEDIF(B2, TODAY(),"y")&" 年, ")& IF(DATEDIF(B2, TODAY(),"ym")=0,"",DATEDIF(B2, TODAY(),"ym")&" ヶ月, ")& IF(DATEDIF(B2, TODAY(),"md")=0,"",DATEDIF(B2, TODAY(),"md")&" 日")

これで、次のスクリーンショットのように、0の値を含まない年、月、日単位で年齢が表示されます:

doc-get-age-from-birthday-6


Excelで特定の日にちの年齢を計算する

時々、現在の日付ではなく、特定の日付までの年齢を取得したい場合があります。その場合、第二引数のTODAY()関数を特定の日付に変更するだけです。例えば:

=DATEDIF(生年月日, 特定の日付, "y")
  • 生年月日: 誕生日の日付。
  • 特定の日付: 生年月日から年齢を計算したい終了日。
  • y: これは誕生日から現在までの完全な年の数を返します。

次の数式を使用してください:

=DATEDIF(B2, C2, "y")

これで、次のスクリーンショットに示すように、生年月日から特定の日付までの年齢が計算されました:

doc-get-age-from-birthday-7

ヒント: 正確な年、月、日単位の年齢を取得するには、次の数式を使用してください:

=DATEDIF(B2, C2,"Y") & " 年, "& DATEDIF(B2,C2,"YM") & " ヶ月, "&DATEDIF(B2,C2, "MD") & " 日"

doc-get-age-from-birthday-8


1900年以前の生年月日に基づいて年齢を計算する

上記の数式は、生年月日が1900年以前の場合、正しく動作しません。1900年以前の日付を入力すると、Excelでは自動的にテキスト形式で保存されるためです。そこで、1900年以前の生年月日がある場合に年齢を取得するためのユーザー定義関数をご紹介します。

1. Alt + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. 次に、挿入 > モジュールをクリックし、次のVBAコードをモジュールウィンドウにコピーします。

1900年以前の生年月日から今日までの年齢を計算する:

Function AgelnNow(ByVal xDate As Variant)
Dim xIA As Integer
xIA = 0
On Error Resume Next
xIA = DateDiff("yyyy", xDate, Now())
If (Month(Now()) < Month(xDate)) Or (Month(xDate) = Month(Now())) Then
If (Day(Now()) < Day(xDate)) Then
xIA = xIA - 1
End If
End If
If xIA = -1 Then
AgelnNow = "Error"
Else
AgelnNow = xIA
End If
End Function

3. 次の数式を空白のセルに入力します: =AgelnNow(A2) A2は生年月日のセル)

次に、フィルハンドルをドラッグして年齢を取得したいセルに適用すると、次のスクリーンショットに示すように、生年月日から今日までの年齢がすべて計算されます:

doc-get-age-from-birthday-9

ヒント: 現在の日付ではなく、死亡日までの年齢を取得する必要がある場合は、次のコードを使用してください:

1900年以前の生年月日から死亡日までの年齢を計算する:

Function Age(ByVal StartDate As Variant, ByVal EndDate As Variant)
    Dim xIA As Integer
    xIA = 0
    On Error Resume Next
    xIA = DateDiff("yyyy", StartDate, EndDate)
    If (Month(EndDate) < Month(StartDate)) Or (Month(StartDate) = Month(EndDate)) Then
        If (Day(EndDate) < Day(StartDate)) Then
            xIA = xIA - 1
        End If
    End If
    If xIA = -1 Then
       Age = "Error"
    Else
        Age = xIA
    End If
End Function

そして、次の数式を使用します: =Age(A2,B2) A2は生年月日のセル、B2は死亡日セル)結果は次のスクリーンショットに示されています:

doc-get-age-from-birthday-10


現在または特定の日付から生年月日に基づいて年齢を計算する驚きの機能

Kutools for Excelは、Date & Time Helper機能という便利なツールをサポートしており、これを使用すると、現在の日付または特定の日付に基づいて年齢を計算でき、複雑な数式を覚える必要がありません。無料試用版のKutools for Excelをダウンロードするにはここをクリック!


関連する関数:

  • YEARFRAC:
  • これは、2つの日付間の分数年を表す小数値を返します。
  • TODAY()
  • これは現在の日付値を返します。
  • INT()
  • これは値の整数部分を返します。
  • DATEDIF
  • この関数は、2つの指定された日付間の年、月、または日の数を返します。

関連する年齢計算記事:

  • ExcelでID番号から年齢を計算する
  • 例えば、13桁の数字を持つID番号のリストがあり、最初の6桁が生年月日であるとします。例えば、ID番号9808020181286は1998/08/02が生年月日です。

最高のオフィス生産性ツール

Kutools for Excel - あなたを群衆から際立たせるツール

🤖 Kutools AI Aide: 次の要素に基づいてデータ分析を革新:インテリジェント実行|コード生成 |カスタム数式の作成|データの分析とチャートの生成 |Kutools機能の呼び出し
人気の機能重複を見つける、ハイライトする、または特定する | 空白行を削除 | データを失うことなく列やセルを結合 | 数式を使わずに丸める...
スーパー VLookup複数条件 | 複数値 | 複数シート間 | ファジーマッチ...
高度なドロップダウンリスト簡単なドロップダウンリスト | 従属ドロップダウンリスト | 複数選択可能なドロップダウンリスト...
列マネージャー指定した数の列を追加 | 列を移動 | 非表示の列の可視化ステータスを切り替え | 列を比較して同じ&異なるセルを選択...
特徴的な機能グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト) | 日付ピッカー | ワークシートの統合 | セルの暗号化/復号化 | リストによるメール送信 | スーパーフィルター | 特殊フィルタ(太字/斜体/取り消し線のフィルタリング...)...
上位 15 のツールセット: 12 個のテキストツール (テキストの追加, 特定の文字を削除...) | 50以上 チャート タイプ (ガントチャート...) | 40以上の実用的な 数式 (誕生日に基づいて年齢を計算...) | 19 個の挿入ツール (QRコードの挿入, パスからの画像挿入...) | 12 個の変換ツール (単語に変換, 通貨変換...) | 7 個のマージ&分割ツール (高度な行のマージ, Excelセルの分割...) | ... さらに多くのツール
お好みの言語で Kutools を使用可能 - 英語、スペイン語、ドイツ語、フランス語、中国語など、40以上の言語に対応!

Kutools for Excel は300以上の機能を誇り、必要なものがワンクリックで手に入ります...


Office Tab - Microsoft Office(Excel含む)でタブ形式の閲覧と編集を有効にする

  • 数十の開いている文書を1秒で切り替える!
  • 毎日数百回のマウスクリックを減らし、マウス手から解放されます。
  • 複数の文書を閲覧・編集する際、生産性が50%向上します。
  • Chrome、Edge、Firefoxのように、タブ機能をOffice(Excel含む)にもたらします。