Excelのユーザー定義関数で年齢を計算する方法: GETAGE関数

 

Excelのユーザー定義関数で年齢を計算する方法: GETAGE関数

この記事では、Excelのユーザー定義関数を使って、生年月日と指定された時点での年齢を計算する方法を解説します。

標準のDATEDIF関数でも計算が可能です(手入力が必要な特殊関数)。ただし頻繁に年齢計算を使用するならば、引数の設定が単純になるユーザー定義関数の導入を検討してください。

提供する関数の名前は「GETAGE」となります。

年齢の計算は「DATEDIF」などの関数を用いても可能ですが、頻繁に使用する場合にはユーザー定義関数として組み込み、素早く取り出せるようにセットアップしておけば便利でしょう。

GETAGE関数の概要

GETAGE関数は、以下の2つの引数を受け取ります。

  1. 生年月日 (必須)
  2. 時点日付 (オプション)

時点日付を省略した場合、その日時点での年齢が計算されます。

GETAGE関数の作成方法

ExcelのVBAエディターで新しい標準モジュールを作成し、以下のコードを貼り付けてください。


Function GETAGE(birthDate As Date, Optional refDate As Variant) As Integer
    Dim age As Integer
    Dim currentDate As Date

    If IsMissing(refDate) Then
        currentDate = Date
    Else
        currentDate = refDate
    End If

    age = Year(currentDate) - Year(birthDate)

    If Month(currentDate) < Month(birthDate) Or (Month(currentDate) = Month(birthDate) And Day(currentDate) < Day(birthDate)) Then
        age = age - 1
    End If

    GETAGE = age

End Function

モジュールにコードを追加した後、Excelのセル内で関数を使用できます。

GETAGE関数の使い方

GETAGE関数は、以下の形式で使用します。

=GETAGE(生年月日, [時点日付])

時点日付はオプションで、省略することができます。省略した場合、その日時点での年齢が計算されます。

使用例

  1. 生年月日が「1990/01/01」の場合、現在の年齢を計算するには以下のように入力します。
    引数には生年月日が入力されているセルを指定しても同様の結果が得られます。

    =GETAGE("1990/01/01")

    この例では、時点日付を省略しているため、その日時点での年齢が計算されます。

  2. 生年月日が「1990/08/01」で、2023年4月10日時点の年齢を計算するには以下のように入力します。各引数には日付が入力されているセルをを指定しても同様の結果が得られます。
    =GETAGE("1990/08/01", "2023/04/10")

    この例では、時点日付を指定しているため、指定された日時点での年齢が計算されます。

まとめ

この記事では、Excelのユーザー定義関数を使用して年齢を計算する方法を解説しました。GETAGE関数を使うことで、簡単に生年月日から年齢を算出することができます。また、時点日付を指定することで、過去や未来の特定の日付時点での年齢も計算できます。この関数は、人事や会計など、年齢計算が必要な業務で役立つでしょう。

コメント