この記事では、エクセルで年齢の自動計算や更新(●歳●ヶ月:生年月日から:関数:ある時点:指定日・基準日)方法を解説します。
それでは詳しく見ていきましょう!
エクセルで年齢の自動計算や更新(今日)方法(歳 ヶ月)
エクセルで年齢を自動計算するには、DATEDIF関数とTODAY関数を使用します。
・DATEDIF関数とは
=DATEDIF(開始日,終了日,”単位”)
開始日と終了日の日数差を調べて、指定した単位で表示します。
単位の引数は以下です。
単位 | 意味 |
“Y” | 期間内の月数を表示 |
“M” | 期間内の日数を表示 |
“YM” | 開始日から終了日までの1年未満の月数を表示 |
“YD” | 開始日から終了日までの1年未満の日数を表示 |
“MD” | 開始日から終了日までの1ヶ月以内の日数を表示 |
意点として、DATEDIF関数はエクセルに公式サポートされていない関数のため、関数の挿入からは入力ができません。手入力で関数を入れると利用ができます。
TODAY関数とは
=TODAY()
現在の日付を表すシリアル値を返します。この関数に引数は必要ありません。
それでは、DATEDIF関数・TODAY関数を利用して年齢を計算していきましょう。
A2セルに生年月日が入力されており、C2セルに今日時点の年齢を表示させたいとします。まずB2セルに以下数式を入力し、今日の日付を表示させたいと思います。
=TODAY()
今日の日付が表示されました。
次に、C2セルに以下数式を入力します。
=DATEDIF(A2,B2,”Y”)
今回は年齢を出したいので、開始日は生年月日、終了日は今日の日付、単位は“Y”と設定します。
今回は今日の日付をB2セルから参照させましたが、DATEDIF関数にTODAY関数をネストする方法もあります。
関数のネストとは、“関数の中に関数を入れる“ことを指します。
では、関数をネストする方法で年齢を表示させてみましょう。
A2セルに生年月日が入力されており、B2セルに今日時点の年齢を表示させたいとします。この場合、B2セルに以下数式を入力します。
=DATEDIF(A2,TODAY(),”Y”)
先ほどと同じく今日時点の年齢が表示されました。
もし年齢を●歳と表示させたい場合は、DATEDIF関数のあとに&“歳”を入力します。
このように関数に文字列を連結させたい場合、&の後に“文字列”(ダブルコーテーション)をつける方法があります。
では、年齢を●歳●ヶ月と表示させたい場合、どのように関数を設定すればよいでしょうか。
今まで利用した関数をつかってやってみましょう。
A2セルに生年月日が入力されており、B2セルに●歳●ヶ月と表示させたいとします。この場合、B2セルに以下数式を入力します。
=DATEDIF(A2,TODAY(),”Y”)&”歳”&DATEDIF(A2,TODAY(),”YM”)&”ヶ月”
関数が長くなったので、分解してみていきましょう。
まず●歳を表示させます。関数はこちらでしたね。
=DATEDIF(A2,TODAY(),”Y”)&”歳”
続けて関数を繋げたいので、&を入れます。
=DATEDIF(A2,TODAY(),”Y”)&”歳”&
次に●ヶ月を表示させるDATEDIF関数を作成します。
開始日はA2セルの生年月日、終了日はTODAY関数で今日の日付を設定します。
開始日から終了日までの1年未満の月数を表示させたいので、引数を“YM”に設定します。
最後に&“ヶ月”を入力し、関数と文字列を連結させます。
=DATEDIF(A2,TODAY(),”Y”)&”歳”&DATEDIF(A2,TODAY(),”YM”)&”ヶ月”
B2セルにこちらの数式を入力します。
33歳9ヶ月と表示させることができました。
余談ですが、DATEDIF関数の開始日・終了日は手入力で日付入力をすることもできます。
下図のように開始日・終了日の日付をダブルコーテーションで囲んで入力するとセル参照した場合と同じ結果を出すことができます。
エクセルで年齢の基準日・指定日での出し方(歳 ヶ月)
今までは今日を起点に年数を計算してきましたが、同じように日付を指定して年数を出すこともできます。それではやってみましょう。
A列に社員名、B列に入社日、C1セルに本日の日付が入力されたデータがあるとします。
C列にそれぞれの社員の社歴を表示させてみましょう。
社歴を求めたいので、開始日は入社日、終了日は今日の日付、単位は年数を求めたいので、”Y”ですね。こちらを数式に当てはめると以下になります。
=DATEDIF(B2,C1,”Y”)
C2セルに数式を入力します。
Aさんの社歴が入力できました。
次にオートフィル機能を利用してBさん、Cさんの社歴を入力していきましょう。
オートフィル機能とは、セルに入力されているデータに基づいて、連続データの入力やコピーを簡単に行う機能です。
まずC3セルをクリックして選択し、セルの右下に表示されている黒い■(フィルハンドル)にマウスカーソルを合わせると、カーソルの形が黒い十字に変わりますので、オートフィルをかけたい方向にドラッグまたはダブルクリックします。
C4セル・C5セルに関数が入りましたが、エラーになりました。
エラーになったC4セルを確認してみましょう。
C4セルを確認すると、DATEDIF関数の終了日をC1セルの今日の日付に設定したいのに、C4セルの関数は、=DATEDIF(B4,C2,”Y”)となっており、終了日の参照先セルが動いてしまっているとわかります。
このように関数をオートフィルでコピーすると、自動で参照先セルが動いていきます。
今回は今日の日付の参照先を動かしたくないので、参照先セルの固定が必要になります。
参照先セルの固定をするには、$(ドルマーク)を利用します。
参照先セルの列だけ・行だけ固定する方法を複合参照といい、列・行どちらも固定する方法を絶対参照といいます。今回は参照先の列も行も動かしたくないので、絶対参照でやっていきましょう。
DATEDIF関数の参照先C2セルに$マークを追加し、$C$2と入力します。
便利な方法として、C2にカーソルを合わせて、F4キーを押すとまとめて$を入力することができます。
=DATEDIF(B4,$C$2,”Y”)
ではC3セルの数式をこちらの数式に直してもう一度オートフィルをかけてみましょう。
今度は正しくオートフィルをかけることができました。
このようにオートフィル機能を利用するときは、関数の参照先に注意しましょう。
まとめ
この記事では、エクセルで年齢の自動計算や更新(歳 ヶ月:生年月日から:関数:ある時点:指定日・基準日)方法をご紹介しました。
ぜひ、ご自身の業務でも活用してみてください。
コメント