6/09/2020

Excel。短縮元号と年月日がそれぞれのセルで管理されているので日付にしたい【Date】

Excel。短縮元号と年月日がそれぞれのセルで管理されているので日付にしたい

<TEXT関数>

Excelでは、一つのセルに日付を入力してから、和暦にするなど、「表示形式」をつかうことで、表示をかえていきます。

つまり、年・月・日と別々に入力して管理するわけではないということです。

しかしながら、現場では、帳票の名残なのかわかりませんが、年・月・日と別々に入力管理をしている表を多々お見受けします。

さらに、元号になっているのですが、「昭和」を「S」、「平成」を「H」というように、アルファベット一文字に短縮した形で入力されていたら、その日付を使った管理も大変な作業になってしまいます。

そこで、今回は、どのようにしたら、一つのセルに日付として設定できるのかを確認していきましょう。

次の表を用意しました。
 
B列が元号ですね。そして、F列にB列からE列をつかって日付をつくっていきます。

通常年月日があれば、DATE関数を使えばいいわけですが、今回は、年が西暦ではないので、アイディアが必要になるわけです。

要するに、今回は、DATE関数は使えないのです。

考え方として、この4つのセルをどうやったら、Excelに日付と認識させることができるのかを考えていきます。

例えば、日付の表示形式は「yyyy/m/d」などがあります。

「yyyy/m/d」と設定すれば、2021/5/28と表示されるわけです。

まずは、「/(スラッシュ)」をつかって、文字結合をしていきます。

F2に、
=B2&C2&"/"&D2&"/"&E2
と数式を設定します。

このような形で算出されています。
 
一応、Excelとしては、「日付」という認識になっていますが、「T13」とわかりにくいので、本当に、日付として合致しているのかを確認するために、西暦表示にしてみます。

そこで、登場するのが、TEXT関数です。

F2の数式をTEXT関数にネストさせます。
F2の数式は、
=TEXT(B2&C2&"-"&D2&"-"&E2,"yyyy/m/d")
と修正しました。
 
西暦表示にすることで、合致していますし、日付として認識してくれています。

それでは、オートフィルで数式をコピーしてみましょう。

日付となっていることが確認できましたので、元号表示の年月日にしていきます。

F2の数式を
=TEXT(B2&C2&"-"&D2&"-"&E2,"ggge年m月d日")
と修正しましょう。

ggge年のgggeが元号表記にする表示形式です。

あとは、オートフィルで数式をコピーしましょう。
 
元号での年月日という表示形式で表示することができましたね。

今回のように、年月日がそれぞれのセルで管理している場合は、文字結合をつかって日付で認識できることを紹介いたしましたが、本来ならば、一つのセルで管理運営するほうがいいように思われます。

なお、「/(スラッシュ)」ではなく「-(ハイフン)」で結合しても大丈夫です。