Excel。元号年月日が別々の列で入力されているので日付にしたい
<TEXTJOIN関数>
データを読み込んでみたところ、次のように年月日が別々の列で入力されていました。
しかも、年は、和暦。
元号のようです。
その元号も昭和ならSというような、アルファベットの頭文字で入力されていました。
これでは、管理しにくいので、E列に日付をつくることにしました。
どのようにしたら、日付に戻すことができるのでしょうか。
単純に&(アンパサンド)で文字結合というわけにもいきません。
単純に文字を結合した結果が表示されるだけです。
そこで、TEXTJOIN関数をつかうことで、対応することができます。
E2をクリックして、TEXTJOIN関数をつかった数式を設定します。
=A2&TEXTJOIN("/",TRUE,B2:D2)
この数式は、まだ途中です。
日付にできたように見えますが、セルの書式設定ダイアログボックスを表示してみると、表示だけが日付っぽく見えていることがわかります。
表示形式の日付にして、カレンダーの種類を和暦にしてから、種類を元号の漢字を選択してみると、サンプルは変わっていないことが確認できます。
そこで、先ほどの数式を次のように修正してみます。
=(A2&TEXTJOIN("/",TRUE,B2:D2))*1
先ほどの数式を「( )」で囲み、「*1」を追加しています。
これにより、文字型から文字数値型に変わりました。
つまり、シリアル値にすることができたというわけです。
オートフィルで数式をコピーします。
そのあと、E2:E5を範囲選択します。
セルの書式設定ダイアログボックスなどをつかって、表示形式を日付にしましょう。
和暦の漢字表示にしてみます。
これで、日付にすることができました。
では、数式を確認しておきましょう。
=(A2&TEXTJOIN("/",TRUE,B2:D2))*1
A列の元号のアルファベットを「&(アンパサンド)」で結合します。
結合するのは、TEXTJOIN関数の結果です。
そのTEXTJOIN関数の確認へ移りましょう。
TEXTJOIN関数は、テキストを区切り文字で接続する関数です。
最初の引数が、区切り文字で、「/」をつかうことにしました。
「-」でもOKです。
2つ目の引数は、空のセルはどうするのかを設定します。
TRUEにすると無視することができます。
B:D列には、データが入力されているので、どちらでもいいのですが、TRUEと設定しました。
3つ目は、テキスト。
接続したい文字です。
接続するのは、B:D列なので、B2:D2 と設定しました。
ここまでの結果に「*1」することで、文字数値型にすることができます。
たぶん、それぞれを 年月日 という文字で区切るよりかは、日付を作るには楽なように思います。