• ベストアンサー

【Excel】数字を日付表示に

表題の通りなのですが、ある数字(8桁の列と6桁の列があります)の入っているセルを、日付表記に表示したいのです。 例えば、現在あるセルに”20061006”、とか”200310”となっているセルがあるのですが、これを ”20061006”→”H18/10/06” ”200310”→”H15/10” と表示させることは可能でしょうか? 「セルの書式設定」→「表示形式」→「日付」で出来るかと思いやってみたのですが、”##########”と表示されるのみで、希望する表示が出来ません。

質問者が選んだベストアンサー

  • ベストアンサー
  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.2

A1に20061006が入力されているとして、 =DATEVALUE(LEFT(A1,4) & "/" & MID(A1,5,2) & "/" & RIGHT(A1,2)) この式を入力すると日付形式に変わります。 あとは、書式設定で変更可能です。

kzh
質問者

お礼

みなさんすごいです!! いずれの方法でも、 ”20061006”→”38996”となり書式設定で”H18/10/06”とすることが出来ました。 ”38996”の意味するところは全く分からないままですが、バッチリです! こんな複雑なことが、こんなに短時間で出来てしまう皆様方って!! ついでに甘えてしまってよろしいでしょうか? 更なる問題点が発生してしまったのです。 例にあげました、”200310”→”H15/10”のほうですが、 「月」が不明なデータで「00」となっているものも混在しています。 例えば、”200300”といった具合です。これも ”200300”→”H15/00” と表記したいのですが不可能でしょうか? ちなみに、ご教授いただいた方法では、”#VALUE”となってます。

その他の回答 (7)

  • fukkyse
  • ベストアンサー率32% (130/402)
回答No.8
kzh
質問者

お礼

遅くなり申し訳ございません。 ご紹介のページ参考にさせて頂きます。

  • NCU
  • ベストアンサー率10% (32/318)
回答No.7

=TEXT(TEXT(A1,"0"&REPT("!/00",1+(LEN(A1)=8))),"gee/mm"&IF(LEN(A1)=8,"/dd","")) 「H18/10/06」は1をかけるとか0を加えるとかすれば日付シリアルとして認識されますが、「H15/10」は無理です。あくまで表示のみになります。

kzh
質問者

お礼

遅くなり申し訳ございません。 参考にさせていただきます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.6

#03です。補足質問に回答します。 A1に"200300"や"200301"とあるとき =IF(RIGHT(A1,2)="00",TEXT(TEXT(LEFT(A1,4)&"0101","0000!/00!/00")*1,"ge")&"/00",TEXT(A1&"01","0000!/00!/00") *1) こんな式を入れて書式を日付形式にし、さらに文字配置を右詰にすれば"H15/00"、"H15/01"と表示できないことはないですが、かなりワヤですね。

kzh
質問者

お礼

有難うございます! これで、やりたかったことがバッチリ可能となりました。 こんな複雑な書式をこの短時間で成し遂げられる皆様に感心しきりでした。 本当に有難うございます。

noname#35582
noname#35582
回答No.5

私が以前質問をさせていただいたのと同じパターンでしょうか? http://okwave.jp/kotaeru.php3?q=1237719 同じセルではできませんので別のセルが必要になります。 たとえば、A1のセルに"20061006"と入っていて、それをB1のセルに"H18/10/06"と表示することはできます。 まず、B1のセルに =DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2)) と入力し、次に、B1の「セルの書式設定」→「表示形式」→「ユーザー定義」で種類を「gee/mm/dd」とすると"H18/10/06"となります。

kzh
質問者

お礼

有難うございます。 同じ事を悩んだ方ですね。私も同様に他のソフトからのデータコンバートの関係で、このような必要性に迫られました。 しかし、、いろんなやり方があるものですねえ。 ただひたすら感心するばかりです。。

  • thrush76
  • ベストアンサー率27% (38/137)
回答No.4

ユリウス通日を利用して日付に直してみます。 A1セルに「20061006」とある場合、他のセルに =IF(INT(MOD(A1,10000)/100)>2,INT(365.25*INT(A1/10000))+INT(INT(A1/10000)/400)-INT(INT(A1/10000)/100)+INT(30.59*(INT(MOD(A1,10000)/100)-2))+MOD(A1,100)-693930,INT(365.25*(INT(A1/10000)-1))+INT((INT(A1/10000)-1)/400)-INT((INT(A1/10000)-1)/100)+INT(30.59*(INT(MOD(A1,10000)/100)+10))+MOD(A1,100)-693930) と書けば、そこに日付のシリアル値が出てきます。 そこの表示形式を日付にすれば、日付形式(和暦も可)で表示可能です。

kzh
質問者

補足

みなさんすごいです!! いずれの方法でも、 ”20061006”→”38996”となり書式設定で”H18/10/06”とすることが出来ました。 ”38996”の意味するところは全く分からないままですが、バッチリです! こんな複雑なことが、こんなに短時間で出来てしまう皆様方って!! ついでに甘えてしまってよろしいでしょうか? 更なる問題点が発生してしまったのです。 例にあげました、”200310”→”H15/10”のほうですが、 「月」が不明なデータで「00」となっているものも混在しています。 例えば、”200300”といった具合です。これも ”200300”→”H15/00” と表記したいのですが不可能でしょうか? ちなみに、ご教授いただいた方法では、”#VALUE”となってます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

A1に”20061006”という文字列もしくは数字があるときB1に以下の式を入力し、書式を日付型に変更  =TEXT(A1,"0000!/00!/00")*1 同様に”200310”のときは =TEXT(A1 & "01","0000!/00!/00") *1

kzh
質問者

お礼

みなさんすごいです!! いずれの方法でも、 ”20061006”→”38996”となり書式設定で”H18/10/06”とすることが出来ました。 ”38996”の意味するところは全く分からないままですが、バッチリです! こんな複雑なことが、こんなに短時間で出来てしまう皆様方って!! ついでに甘えてしまってよろしいでしょうか? 更なる問題点が発生してしまったのです。 例にあげました、”200310”→”H15/10”のほうですが、 「月」が不明なデータで「00」となっているものも混在しています。 例えば、”200300”といった具合です。これも ”200300”→”H15/00” と表記したいのですが不可能でしょうか? ちなみに、ご教授いただいた方法では、”#VALUE”となってます。

  • thrush76
  • ベストアンサー率27% (38/137)
回答No.1

「日付」では日付のシリアル値を日付表示しているので、"20061006"など大きい数はただのエラーになります。 ユーザー定義で「##"/"##"/"##」とすれば「2006/10/16」と表示させることはできます。 ただし、これは日付表示に見せかけているだけなので、和暦に直すことはできません。 かなり頑張ればユリウス通日に直すことも出るのでしょうけど。

kzh
質問者

お礼

早速のご回答有難うございます。 参考にさせていただきます。