- ベストアンサー
excel関数(年月日等の処理)について
「元号コード+元号年yy+月mm+日dd」というデータを、 (例1:3620401 【3=昭和,昭和62年4月1日】) (例2:4021228 【4=平成,平成2年12月28日】) 「yyyy/mm/dd」の西暦の形に直したいと思っています。 excelでどのような関数を作ればよいのでしょうか? 元号コードは上記の昭和=3、平成=4のみです。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
=IF(LEFT(J7,1)="3",MID(J7,2,2)+1925,MID(J7,2,2)+1988)&"/"&MID(J7,4,2)&"/"&MID(J7,6,2) J7を、対象のセルに書き換えてください。
その他の回答 (7)
- nobu-
- ベストアンサー率33% (31/93)
仮にA1に3620401という数字が入力されているとすれば、 表示したいセルの中に、 =DATE(IF(MID(A1,1,1)="3",1925+VALUE(MID(A1,2,2)),1976+VALUE(MID(A1,2,2))),MID(A1,4,2),MID(A1,6,2)) と入力し、表示形式を好きなように変更してはどうでしょうか?
- Turbo415
- ベストアンサー率26% (2631/9774)
私の知っている限りでは、一発でできそうもないですね。 ただ、ワークエリア等を使えばできそうです。まずコードをmid関数などで1桁2桁2桁2桁に4つのセルに分解して最初の1桁目を分解したセルで平成か昭和かを判断して表示させ、次の2桁を表示せるセルにVALUE関数を使ってゼロを消させて、(01を1と表示させます)同じ事を次の2桁、その次の2桁にやり、元号のセル、年のセル、月のセル、日のセルを&でつなげてやると良いと思います。 つまり、A1セルに3620401と入っていて、B1セルに昭和62年4月1日と出したいならとします。B1セルに=C1&D1&"年"&E1&"月"&F1&"日"、C1セルに=IF(LEFT(A1)=3,"昭和","平成")、D1セルに=VALUE(MID(A1,2,2))、E1セルに=VALUE(MID(A1,4,2))、F1セルに=VALUE(MID(A1,6,2))といれれば、B1セルに出ます。C以降のセルをかなり離れたところに設定するか非表示にすればそれなりに使えると思います。
存在しない(たとえば昭和70年)などをエラーにしたい場合は工夫が必要です。念のため。
- higekuman
- ベストアンサー率19% (195/979)
#1です。 #2さんの回答のほうがスマートですね。
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 =IF(LEFT(A1,1)="3",DATE(MID(A1,2,2)+1925,MID(A1,4,2),MID(A1,6,2)),IF(LEFT(A1,1)="4",DATE(MID(A1,2,2)+1925,MID(A1,4,2),MID(A1,6,2)),""))
- Dxak
- ベストアンサー率34% (510/1465)
違うアプローチで・・・ =DATEVALUE(MID("MTSH",LEFT(A2,1),1) & TEXT(RIGHT(A2,6),"00""/""00""/""00"))
- hana-hana3
- ベストアンサー率31% (4940/15541)
=DATE(IF(LEFT(A2,1)="3",1925+MID(A2,2,2),1988+MID(A2,2,2)),MID(A2,4,2),RIGHT(A2,2))
お礼
皆様の回答により解決しました。 たくさんのアプローチの仕方があるのですね。 本当に勉強になりました。