
年齢の計算には、ある程度の専門知識が必要です。使用する式は、日付の計算を理解し、閏年を考慮する必要があります。数年前は、年齢の計算ははるかに難しかったのですが、.xlsx形式ではExcelのYEARFRAC()関数がサポートされているため、年齢の計算がはるかに簡単になりました。
あるいは、すべてをスキップしてExcel Power Queryを使うこともできます。Power Queryは自動的に計算式を追加するので、式を意識する必要はありません。このチュートリアルでは、シートレベルでYEARFRAC()を使用する方法と、Power Queryを使って年齢を計算する方法を説明します。このチュートリアルのデモファイルをダウンロードできます。
Windows 10 64ビットシステムでMicrosoft 365デスクトップを使用しています。Excel Power Queryはバージョン2010まで利用可能です。YEARFRAC()はすべての.xlsxバージョンでのみ利用可能です。Web版ExcelはPower Queryをサポートしていません。
参照:誰もが知っておくべき Windows、Linux、Mac のコマンド (無料 PDF) (TechRepublic)
表現の使い方
この記事はPower Queryの使い方について解説するものであり、年齢を計算するのに式は不要です。しかし、Power Queryを使いたくないユーザーにも分かりやすく代替案を提供できるよう、このセクションではシートレベルの式を使用します。
年齢を計算する式は数多くありますが、精度が重要な場合は次の式を使用します。
=YEARFRAC(dob,NOW())
生年月日ですdob
。ExcelのYEARFRAC()関数は、2つの日付の間の日数で表された年の割合を次の形式で計算します。
YEARFRAC(start_date, end_date, [basis])
オプションの basis 引数は、使用する日数カウントの種類を識別しますが、これには少し説明が必要です。
0 or omitted US(NASD) 30/360
1 Actual
2 Actual/360
3 Actional/365
4 European/360
ここでは、オプションの基準引数を省略するため、図 Aに示すサンプル シートの D3 に次の関数を入力し、残りのセルにコピーします。
=YEARFRAC(C3,NOW())
ご覧の通り、この関数は各人が次の誕生年から何日目かを示す小数値を返します。例えば、NOW()
2022年5月の日付を返しますが、ジムとジョーダンは誕生日を迎えたばかり、デリアはもうすぐ64.5歳、ジョイはもうすぐ誕生日を迎えます。この関数はミッシーの閏年誕生も処理しました。
図A

この関数は、使い方さえ知っていれば簡単に使えます。最大の難関は、どの引数を使うべきかということです。ほとんどの場合、データの使い方によって引数は決まります。では、Power Query を使ってみましょう。Power Query を使えば、推測する必要がなくなります。
Excel Power Queryの使い方
年齢を返す式をわざわざ考えなくて済むように、ExcelのPower Queryを活用しましょう。まずは、以下のようにデータをPower Queryに取り込みます。
- データ セット内の任意の場所をクリックします。
- [データ] タブをクリックし、[データの取得と変換] グループで [テーブル範囲から] を選択します。
- ソースデータがTableオブジェクトにない場合、Excelはデータ範囲をTableオブジェクトに変換するように促します。「テーブルに見出しを付ける」オプションにチェックを入れ、「OK」をクリックします。ExcelはデータをPower Queryに読み込みます(図B)。
図B

生年月日を含むデータが Power Query に取り込まれたら、次のように年齢の列を追加できます。
- 生年月日の列を選択します。この場合はDOBです。選択するには、ヘッダーセルをクリックするだけです。
- 列の追加をクリックします。
- [開始日時] グループで、[日付] ドロップダウンをクリックします。
- ドロップダウンから年齢を選択します (図 C )。
図C

図D

図Dに示すように、デフォルトの形式では期待通りの年齢値を入力できません。形式を変更するには、新しい「Age」列を選択し、以下の操作を行います。
- 「変換」をクリックします。
- [日付と時刻の列] グループで、[期間] をクリックします。
- ドロップダウンから「合計年数」(図 E)を選択します。
図E

年齢列に年齢が整数で表示されるようになりました。小数値は次の誕生日までの年数を表します。必要に応じて、次のように値を四捨五入することもできます。
- 年齢列を選択します。
- 「変換」をクリックします。
- [数値列] グループで、[丸め] ドロップダウンをクリックします。
- 「切り捨て」を選択します。
図Fは、年齢の値を切り捨てた結果を示しています。切り上げることはあまり望ましくないかもしれませんが、選択肢の一つです。
図F

この時点で、四捨五入された年齢値を含むデータをExcelに読み込み、Excelで通常のデータセットと同様に使用できます。読み込むには、「ファイル」タブをクリックし、「閉じる」グループから「閉じて読み込む」を選択します。図Gは、新しいExcelシートに結果が表示されています。
図G

唯一失われるのは、年齢値の小数点以下の部分です。小数点以下の値が必要な場合は、Power Query で切り捨てを行わないでください。