7/10/2023

Excel。年月日が別々のセル、しかも年は短縮元号。日付にするにはどうしたらいい【Era name】

Excel。年月日が別々のセル、しかも年は短縮元号。日付にするにはどうしたらいい

<TEXT+TEXTJOIN関数>

データを読み込んだら、なんと日付が、年月日が別々のセルで管理されています。


しかも、年が元号で、昭和を「S」というように表示する短縮した状態でした。

短縮元号。日付にするにはどうしたらいい

これでは、日付に関する計算や抽出はできませんので、E列に日付をつくることになります。


では、どのようにしたら、アルファベット一文字の元号と年月日をつかって、日付にできるのか、確認していきましょう。


アルファベット一文字の元号の場合、DATE関数をつかって、日付を表示することはできません。


今回のケースでは、表示形式を設定することができる、TEXT関数をつかうことで、日付にすることができます。


E2に次の数式を設定します。

=TEXT(A2&TEXTJOIN("-",TRUE,B2:D2),"ggge年m月d日")


E5まで、オートフィルで数式をコピーすれば、完成です。


年が元号でしたので、日付を和暦(元号)表示にしましたが、グレゴリオ暦(西暦)で表示したいならば、数式は、次のようにすれば問題ありません。


それでは、数式を確認しておきましょう。


TEXT関数は、表示形式の関数です。

元号で表示したいので「"ggge年m月d日"」としています。


あとは、日付はDATE関数をつかうことができませんが、結合はしなければなりません。


年月日は、「/(スラッシュ)」で結合します。


「B2&”/”&C2&”/”&D2」と「&(アンパサンド)」をつかって、何度も繰り返すのも面倒なので、TEXTJOIN関数をつかってみました。


TEXT関数の最初の引数である値には、

A2&TEXTJOIN("-",TRUE,B2:D2)

と設定します。


TEXTJOIN関数は、最初の引数の「区切り文字」で結合することができます。


2つ目の引数は、3つ目の引数の値があった場合、どうするのかを設定することができます。


TRUEだと、空のセルは無視してくれます。

FALSEだと、空のセルを含めてくれます。


空白のセルは存在していないことにしていますので、TRUEとしました。


最後の引数がテキストです。

範囲選択できますので、B2:D2と年月日を範囲選択しています。


これで、日付にすることができました。


アルファベット一文字で短縮された元号と、年月日が別々のセルにある場合には、ちょっとアイディアが必要になります。