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と年月日を範囲選択しています。
これで、日付にすることができました。
アルファベット一文字で短縮された元号と、年月日が別々のセルにある場合には、ちょっとアイディアが必要になります。