9/05/2025

Excel。元号年月日が別々の列で入力されているので日付にしたい【date】

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」することで、文字数値型にすることができます。


たぶん、それぞれを 年月日 という文字で区切るよりかは、日付を作るには楽なように思います。