11/14/2016

Excel。和暦を西暦に変換。けど日付がドットで区切られていて…どうしたらいい?

Excel。和暦を西暦に変換。けど日付がドットで区切られていて…どうしたらいい?

<DATEVALUE関数>


なんでも前任者さんが使っていた、古いExcelファイルだそうでして、その中に生年月日の欄があるのですが、なんと次の表のようになっていて、困っているとのこと。

どうやら、以前用紙で入力されていたものを、そのままExcelに入力したのではないかとのこと。C列には元号の頭文字が、そして、なんと生年月日が35.7.21と年月日が入力されていて、しかも、年と月の間には、ピリオドというかドットが入力されていて、区切られているというD列があるわけですね。

確かに、これでは、西暦にするにしても、年齢を算出するにしても、どうしようもありませんよね。

ということで、今回はこのような状態の場合にどうしたらいいのか?をご紹介していきます。

E列に、元号を生年月日に結合させればいいのでは?と考えると思いますが、どうなるのかを確認してみましょう。
E3をクリックして、=C3&D3
S35.7.21
と表示されましたが、ただ、文字を結合しただけで、表示形式を変えようとしても、変えることが出来ません。
では、一から入力しなおさないといけないのでしょうか?

そこで、登場するのが、【DATEVALUE関数】です。

それでは、E3をクリックして、DATEVALUE関数ダイアログボックスを表示しましょう。
難しくない関数なので、直接手入力でもOKですよ。

日付文字列には、C3&D3 と入力しましょう。
OKボタンをクリックしましょう。
数式は、
=DATEVALUE(C3&D3)
E3には、このように算出されます。

E3に表示されたのは、シリアル値。なので、表示形式を使って西暦の年月日の表示に変更していきます。その後、オートフィルで数式をコピーします。

このように、【DATEVALUE関数】を使ってあげれば、日付に変換することが出来ます。

この【DATEVALUE関数】は、結構実務的に役立つ関数で、次のようなケースでも使える関数です。

このケースは、年月日がそれぞれ、別の列に設定されている場合です。
この場合には、次のように【DATEVALUE関数】を使ってあげれば、日付にすることが出来ます。

DATEVALUE関数ダイアログボックスを表示して、今回は、日付文字列には、
C3&D3&"-"&E3&"-"&F3
と入力します。
数式は、
=DATEVALUE(C3&D3&"-"&E3&"-"&F3)
あとはOKボタンをクリックして、表示形式を変更するのと、オートフィルで数式をコピーすれば、完成になります。

元号がアルファベットの頭文字。すなわち、明治のM。大正のT。昭和のS。平成のH。というケースでは、-(ハイフン)で結合してあげる必要があります。

また、今回のC列が、明治・大正・昭和・平成という文字になっている場合の数式は、
=DATEVALUE(C3&D3&"年"&E3&"月"&F3&"日")というように、
年月日という文字で結合させる必要がありますので、ご注意ください。

まぁ、出来ることなら、Excelの入力は、2017/10/18のように入力してあげるのが、いいのかもしれませんね。