Excel。こういう管理はしないでほしい!元号・年・月・日が別々のセルで年齢を求めるには!
<DATEDIF関数>
日付から、年齢や職場の在籍期間などを算出するときには、DATEDIF関数を使って算出しますよね。ただでさえ、DATEDIF関数が、手入力でないと数式をつくれない関数ということもあって、難易度が高いのに、元号・年・月・日がそれぞれ別の列で管理している表で、生年月日や入社日などを管理しちゃっていると、結構面倒というか、”お手上げ”になってしまいます。
このように、元号・年・月・日が別々のセルに入力されています。
なんで、このような表を作っちゃったんでしょうか?
日付は、基本的にというか、原理原則として、日付型で一つのセルで入力管理したほうがいいわけですね。
元号を使いたいときには、表示形式を使えばいいわけです。
と愚痴をいったところで、この表からどうやって、年齢を簡単に算出することができるのでしょうか?
DATE関数を使っても、元号を含めることができません。
F列に数式をネストでつくってもいいのですが、ここは流れを確認するために、G列をつかって、元号・年・月・日を日付(日付文字列)にしてみましょう。
G2をクリックして、次の数式を作ってみましょう。
=B2&C2&"年"&D2&"月"&E2&"日"
数式をオートフィルでコピーします。
G列に日付(日付文字列)が算出できましたね。
このように、「&」を使って文字連結をつかい、年月日も間に挟むことで、まずは、日付(日付文字列)にすることができます。
では、F列に年齢を算出していきましょう。
DATEDIF関数は、ダイアログボックスがありませんので、手入力で数式を作っていきます。
F2には、次のように入力します。
=DATEDIF(B2&C2&"年"&D2&"月"&E2&"日",TODAY(),"Y")
では、オートフィルで数式をコピーしましょう。
このように算出することできました。なかなか面倒なので、日付の管理は、重要ということがわかると、今後改善できるポイントだと思われます。
ただ、今回は、元号が昭和とか平成だったのでいいのですが…
昭和をSとか平成をHとかで表記している場合。
当然、
=DATEDIF(B2&C2&"年"&D2&"月"&E2&"日",TODAY(),"Y")
という数式では算出することができません。
このような場合には、年月日の文字をハイフン(-)に置き換えてあげることで算出することができます。
=DATEDIF(B2&C2&"-"&D2&"-"&E2,TODAY(),"Y")
では、確認してみましょう。
ハイフンに置き換えてあげることで、日付(日付文字列)にすることができますので、それを元にして、年齢や勤務年数などを算出することができました。
このように、日付の管理は、バラバラにすると、あとで何か算出等で使うときに利便性を欠くことになってしまい、効率が悪化しますので、注意するといいかもしれませんね。
もし、このような表を作る場合には、YEAR関数などをつかって、日付から年月日を表示させるようにするほうが、効率が悪化しないですみますね。