5/20/2018

Excel。セルごとに入力されている短縮元号年月日から年齢を求めるには【DATE】

Excel。セルごとに入力されている短縮元号年月日から年齢を求めるには

<DATEDIF&DATE関数>

現場では様々な帳票がありまして、次のような表をまずは見てください。
 
年齢を算出している表な訳なのですが、
生年月日の年月日が、それぞれセルごとに分かれて入力されている状態でして、
一つのセルに生年月日があれば、DATEDIF関数を使えば、簡単に算出できるのに、
バラバラになってしまっているので、
算出するのが大変になってしまったケースですね。

日付はバラさない」これが基本ですね。

しかし、このようになってしまっている場合、
どのようにしたら年齢を算出できるのかが、現場では必要になりますので、
その方法をご紹介していきましょう。

まず登場する関数はDATEDIF関数。

満年齢を算出することが出来る関数なのですが、この関数の困った点は、
手入力でないといけないということ。

関数挿入ダイアログボックスでは作ることができない、
いわゆる、『隠れ関数』な訳ですね。

そして、このバラバラになってしまっている年月日を
日付にするために必要な関数である、
DATE関数の2つの関数を使うことで算出することが出来ます。

E2の数式は、
=DATEDIF(DATE(B2,C2,D2),I1,"y")

DATEDIF関数の引数は、(開始日,終了日,算出方法)なので、
開始日である、生年月日を算出するために、
DATE関数を使って、日付を作ります。

そして、終了日が、I1。

算出方法は、満年齢なので、”y”とすれば算出してくれますね。

このケースは、西暦だったので、
開始日を作るのにDATE関数を使えばいいというアイディアは
思い浮かびやすいのですが、

次のケースはどうなのでしょうか?

【短縮元号の生年月日はDATE関数が使えない】


このような表の場合はどうでしょうか?

先程と違う点は、元号の生年月日で、
セルごとに分かれているだけではなく、昭和なら”S”。

平成なら”H”というような、
元号をアルファベットで表示した短縮元号を使っているということ。

当然、DATE関数を使っても日付になるわけはありません。

では、このケースでは算出することが出来ないのでしょうか?

意外とシンプルな方法で解決できるのですが、注意する点があります。

F5の数式を確認してみましょう。

=DATEDIF((B5&C5&-D5&-E5),I1,"y")

そう、単に、文字結合の”&”を使って年月日を作るわけですね。

ただ、注意する点は、”-“(ハイフン)を入れる必要があるという点ですね。

つまり、H10-4-5という形になれば、
Excelは日付だとわかってくれるので、
”-“(ハイフン)をいれる必要があるわけですね。

このように、年月日をセルごとにわけて入力してある表の場合は、
工夫が必要になってしまいますので、出来ることならば、
分けないでほしいものですね。