見出し画像

[EXCEL] 「年号&年&月&日」が日付データになる?文字列でも計算に使える!

目次 > 日付と時間のトラブルレスキュー


2026/6/1追記
★重要★
本記事のやり方は推奨しません。環境によって誤った年月日になる場合があります。詳しくは以下記事の最後を参照願います。

[EXCEL] 和暦・西暦混在の生年月日は入力が面倒!「年・月・日」を別々入力⇒合体する方法 ~入力・集計の実践トラブルレスキュー~


--- 元記事

目次 > 入力 > 日付

【まとめ】
元号のローマ表示(R/H/S等)と「和暦」「月」「日」を「&」で繋いで1を掛けると日付データになる。
・(R/H/S"&和暦年&".”&月&".”&日)*1  ⇒  日付データ
*1を掛けないと文字データ(文字列)となる。
 その場合でも、数式に使える。

【説明】
業務でこんな表に出くわしました。

再現表

開始年月日と終了年月日を入れると、年数と月数を計算する表です。
入力は和暦で、最初に元号をリストから選択します(実際は元号リストは別シート)。

1 「元号」「年」「月」「日」を「&」繋ぐと年月日になる(ただし文字データ)

私が気になったのは、「元号」「年」「月」「日」から「年月日」を作るのに、以下の数式が使われていたこと。
=C3&D3&"."&E3&"."&F3
=元号&年&"."&月&"."&日
これにより、見た目は、和暦の簡略表示になります。

H31年は4月30日まで平成、
5月1日からは令和となります

「元号」「年」「月」「日」を「&」で合体させるだけで「年月日」になるんだ!と、正直、かなり衝撃!
今までの私の工夫(↓↓↓)は何だったんだ?と思ってしまいました。
西暦と和暦が混在する年月日を効率的に入力する方法(和暦は年号違いが混在)
和暦と西暦が混在する日付は「西暦/和暦」リストで効率的に入力する

しかし・・・
この「合体された日付」、実は「文字データ(文字列)」です。
Ctrl+Shift+^(標準の書式に戻すショートカット)でも変わらず
(日付データなら5桁の数値/シリアル値になるはず)。
Ctrl+1の「セルの書式設定」で「日付」で西暦表示にしても変わらず。

文字データ(文字列)なので、変わらないのは当たり前です。


2 文字データだけと計算には使える!

なんだ、文字データ(文字列)じゃん、だったら計算には使えないのでは?と思ったのですが・・・さにあらず。

「元号」「年」「月「日」を「&」で繋いで出来た2つの「年月日」。
これを、DATEDIF関数に入れると・・・
経過期間がちゃんと出ます(以下は満月数の場合)。
=DATEDIF(G3,G4,"m")
=DATEDIF(開始日,終了日,"m")
*DATEDIF関数は、経過期間(年なら”Y",月なら”M”、日なら”D")を出す関数。ただし、Excelの公式関数ではないので手入力が必要。
もっと詳しく⇒[Excel]経過年数(満年数)の出し方 DATEDIF関数 その1

これは、ちょっと驚きでした。

元の「年月日」は文字データ(文字列)なのに計算には使えます。
勿論、DATEDIF関数だけではありません。
指定日の〇か月後の末日を出す EMONTH でも・・・

上の「H31.1.1」(見えづらくてすみません)は、文字データ(文字列)ですが、下のEMONTHに入れると、ちゃんと答えが出ます。
=EMONTH(日付,〇か月)⇒ 日付の〇か月後の月末日を出す
もっと詳しく⇒ [EXCEL] 指定日の「〇か月前/後の同日/初日/月末」「年末」「年度末」を出すEMONTH関数、EDATE関数、DATE関数


3 文字データの「年月日」に1を掛けると日付データになる

少し話を戻します。
「年号」「年」「月」「日」を「&」で繋いだ「年月日」は文字データ(文字列)になる、と書きました。
しかし、このデータに1を掛けると日付データになります。

F3セルの「H31.1.1」は、左の「元号」「年」「月」「日」を「&」で繋いだものであり、文字データ(文字列)です。
しかし、これに1を掛ける(*1)と日付データになります。
F6は1をかけたものです。
この状態では日付の元である「シリアル値(1900年1月1日を1として、以降1日ずつ+1となる数値)」ですが、「セルの書式設定」(Ctrl+1)で日付形式に直せます。


エラー表示が出ますが、エラーを無視する、で消していいでしょう。


というわけで、「元号」「年」「月」「日」を合体させる場合、和暦と西暦との差を気にしなくても、「&」で以下の通り繋ぎ、かつ、1を掛けることで、日付データになる、といえます。

=(元号&年&"."&月"."&日)*1
*「セルの書式設定」による表示形式の設定は必要。

これにより、以前の記事のように複雑な数式は不要となります。
西暦と和暦が混在する年月日を効率的に入力する方法(和暦は年号違いが混在)


元号が漢字の場合

元号が漢字の場合、「元号〇年〇月〇日」の形の文字データ(文字列)であれば、1を掛けることで、日付データになる。
(「元号〇.〇.〇」では数式データにはならない。)


備考(和暦と西暦が混在する場合)

入力データの元となる書類が全て和暦で書かれていれば、この方法は有効でしょう。
もしそうでなければ(和暦と西暦の記載が混在)するなら、「和暦/西暦リスト」があった方が入力が楽でしょう。
和暦と西暦が混在する日付は「西暦/和暦」リストで効率的に入力する


日付と時間のトラブルなら、こちら

軽めのトラブルはこちらをどうぞ
「プチトラブルレスキュー」シリーズ 一覧記事

いいなと思ったら応援しよう!