12/13/2018

Excel。こういう管理はしないでほしい!元号・年・月・日が別々のセルで年齢を求めるには!

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関数などをつかって、日付から年月日を表示させるようにするほうが、効率が悪化しないですみますね。