【Excel関数】生年月日から年齢を表示させる方法

Windows PC

こんにちは、ふみです。みなさんは年齢の記入が必須の作業届の作業員名簿を、表計算ソフト「Microsoft Excel(エクセル)」で作成しているのに毎回、作業員の年齢確認をしていませんか?

作業届の作業員名簿に求められている年齢は作業日時点での年齢なので、別の日に新しい作業が発生する度に全員同じ作業員でも毎回年齢確認をしなければなりません。確認するのは手間な上、毎回年齢を確認させられる作業員の方々もわずらわしいと思います。

DATEDIF関数を知っていれば、作業員の生年月日を最初に確認しておくだけで、同じ作業員から何度も年齢を確認しなくて済むようになります。

生年月日から現在の年齢を表示させる

生年月日が入力されているセルのアドレスを「A3」とした場合、現在の年齢を表示させるセルに次の関数を設定します。

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

これで関数を設定したセルは、現在の年齢が表示されます。

生年月日から作業日時点の年齢を表示させる

作業届の作業員名簿は作業日時点での年齢が必要になります。
作業日時点での年齢を表示するときは生年月日が入力されているセルのアドレスを「A3」、作業日が入力されているセルのアドレスを「L1」とした場合、年齢を表示させるセルに次の関数を設定します。

=DATEDIF($A3,$L$1,"Y")

これで関数を設定したセルは、作業日現在での年齢が表示されます。

セルA3の列番号に絶対参照を表す「$」を使っているのは、この作業員名簿は縦に名前を並べるので数式を設定した後に縦方向にコピーして使いますが、横方向にコピーして使用することがない(使い道がない)からです。
また、作業員名簿の作業日は同じ作業日になる為、セルL1は行番号、列番号の両方に絶対参照を設定しています。相対参照にしてしまうと別のセルにコピーしたときに同じ作業日を参照しなくなってしまいます。

このように予め行番号、列番号に絶対参照を設定しておけば、別の誰かが誤って別の列にコピーして数式を流用するのを防ぐことができます。
特に関数で値が変換されてしまうセルは、関数の参照先の間違いに気づきにくくなるので、必ず全体参照、相対参照の設定を確認します

DATEDIF関数について

DATEDIF関数は開始日と終了日を入力して指定した形式の経過日を表示させる関数です。
ここでは開始日を「生年月日」、終了日を現在、または作業日、表示形式を「Y(年)」で指定しています。(表示形式の「Y」を「M」にすると月数、「D」にすると日数が表示されます。)

Excel関数は関数の挿入ボタン「fx」から関数を検索して入力することができますが、私が使っている Office 2019 のExcelの場合、DATEDIF関数は関数の挿入ボタンから検索できません

DATEDIF関数は手入力で設定しましょう。

まとめ

  • 生年月日から年齢を求めるときはDATEDIF関数を使う
  • DATEDIF関数は数式をコピーする前に、セルの参照先の絶対参照、相対参照の設定を確認する
  • DATEDIF関数は関数の挿入ボタンから検索できないので手入力で設定する

ありがとうございました。

コメント

タイトルとURLをコピーしました