エクセルで年齢を自動計算する方法をお探しですね。
広告
エクセルで年齢や勤続年数を自動計算!DATEDIF関数の使い方完全ガイド
社員名簿や顧客リストをエクセルで管理していると、「年齢」や「勤続年数」の更新が面倒ですよね。
毎年手作業で計算し直すのは時間がかかるし、入力ミスも起こりやすくなります。
そんなときに便利なのが「DATEDIF関数」です。
一度設定すれば、日付から自動で年数や月数を計算してくれる優れものなんです。
この記事では、DATEDIF関数の基本的な使い方から、よくあるエラーの解決方法、さらに精度の高い代替関数まで、わかりやすく解説していきます。
DATEDIF関数の基本的な使い方
DATEDIF関数は、2つの日付の間の期間を計算してくれる関数です。
生年月日から年齢を求めたり、入社日から勤続年数を出したりするのに使えます。
基本の書き方はこちら:
“`
=DATEDIF(開始日, 終了日, "単位")
“`
たとえば年齢を計算するなら、開始日に「生年月日」のセル、終了日に「今日の日付」を指定します。
単位の種類を覚えよう
最後の「単位」の部分には、どんな形で期間を表示したいかを指定します。
よく使うものはこの4つです。
– **”Y”**:満年数(年齢や勤続年数を出すときに使う)
– **”M”**:満月数(全部で何ヶ月経ったか)
– **”D”**:満日数(全部で何日経ったか)
– **”YM”**:1年未満の残り月数(「○年○ヶ月」と表示したいときに使う)
実際の使用例
A列に生年月日、B列に基準日が入っているとしましょう。
年齢を求める数式はこうなります。
“`
=DATEDIF(A2, B2, "Y")
“`
数式を下にコピーして使う場合は、基準日のセルがずれないように「$B$2」のように$マークをつけて固定するのがポイントです。
これを「絶対参照」といいます。
常に最新の年齢を表示させる便利ワザ
実務でもっと便利に使うなら、終了日に「TODAY関数」を組み合わせましょう。
“`
=DATEDIF(A2, TODAY(), "Y")
“`
こうすると、ファイルを開いたその日の日付を基準に、常に最新の年齢が自動で計算されます。
毎年更新する手間が省けて、とっても楽になりますよ。
法律に合わせた正確な年齢計算
実は、日本の法律では「誕生日の前日に歳をとる」ことになっています。
そのため、厳密に計算するなら、終了日に1日プラスする必要があります。
“`
=DATEDIF(A2, TODAY()+1, "Y")
“`
こうすることで、誕生日の前日に年齢が切り替わるようになり、法律上正しい年齢管理ができます。
「○歳○ヶ月」と詳しく表示する方法
年齢をもっと詳しく表示したいときは、&記号で文字をつなげます。
“`
=DATEDIF(A2, TODAY(), "Y") & "歳" & DATEDIF(A2, TODAY(), "YM") & "ヶ月"
“`
これで「25歳3ヶ月」のように表示できます。
よくあるエラーと解決方法
DATEDIF関数は便利ですが、いくつか注意点があります。
入力候補に出てこない?
実は、DATEDIF関数は「非公式関数」という特殊な扱いなんです。
そのため、入力中に候補リストに表示されません。
スペルを間違えないよう、最後まで手入力する必要があります。
#VALUE!エラーが出たら
このエラーが出る原因は主に2つです。
– セルに文字や空白が入っている
– 日付の形式が間違っている(例:2024.01.01)
セルの書式を「日付」に変更して、正しい形式(2024/01/01)で入力し直しましょう。
#NUM!エラーが出たら
これは、開始日より終了日の方が古い日付になっているときに出ます。
引数の順番が逆になっていないか、未来の生年月日が入っていないか確認してください。
年齢が4歳もズレる!?
計算結果が実際の年齢と4歳くらい違う場合、エクセルの設定に問題があります。
「ファイル」→「オプション」→「詳細設定」を開いて、「1904年から計算する」のチェックを外してください。
これで正しく計算されるようになります。
より正確に計算したいときの代替関数
DATEDIF関数は便利ですが、うるう年を含む長期間の計算で、まれに誤差が出ることがあります。
給与計算など1日のズレも許されない場面では、「YEARFRAC関数」を使うのがおすすめです。
YEARFRAC関数の使い方
YEARFRAC関数は、期間を年単位の小数で正確に計算してくれます。
“`
=YEARFRAC(開始日, 終了日, 1)
“`
最後の「1」は、実際の日数を基準にするという意味です。
整数で表示する方法
ただし、この関数は「25.75年」のように小数で結果が出るので、年齢として表示するには小数点以下を切り捨てる必要があります。
ROUNDDOWN関数やINT関数と組み合わせて使いましょう。
“`
=ROUNDDOWN(YEARFRAC(A2, TODAY()+1, 1), 0)
“`
これで、正確な年数を整数で表示できます。
YEARFRAC関数は公式関数なので、入力時に候補リストに表示されるのもメリットです。
用途に合わせて、DATEDIF関数とYEARFRAC関数を使い分けてくださいね。
まとめ
いかがでしたか?DATEDIF関数を使えば、年齢や勤続年数の管理がグッと楽になります。
最初は少し難しく感じるかもしれませんが、一度設定してしまえば、あとは自動で計算してくれるので本当に便利ですよ。
ぜひ試してみてください!
広告
