【初月無料キャンペーン中】gooドクター

180825 のような6桁の文字列を2018/08/25の8桁の日付に変換したいのですが。

また同様に20210512 を2021/05/12への変換したいのですが、
併せてご回答いただければ非常に助かります。

いろんな形式の日付のシートを1つにまとめています。

gooドクター

A 回答 (6件)

「8桁の日付」が意味不明です。

「yyyymmdd」の文字列にするの
かシリアル値に変換するのかどっちなんでしょう。

後者だとして
=TEXT(A1,"0-00-00")-0
表示形式を日付に
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございました。
一発解決できました。

お礼日時:2021/05/12 16:48

添付図参照(Excel 2019)


↓↓↓↓↓↓↓↓↓↓↓↓↓↓
「エクセルで文字列形式の6桁の数字を8桁の」の回答画像6
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
参考になりました。

お礼日時:2021/05/12 16:51

No4です



連投失礼。

シリアル値へ変換する場合は、No3様の方法の方が簡潔でエレガントですね。
そちらを用いた方がよさそうに思います。
(勉強になりました…)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2021/05/12 16:50

こんにちは



必ず6桁の文字列になっている保証があるのなら、元の値がA1にあるとして
 = TEXT(A1,"""20""##""/""##""/""##")
とすれば、変換されると思います。(結果は文字列になります)

もっとプリミティブにやるなら、
 ="20" & LEFT(A1,2) & "/" & MID(A1,3,2) & "/" & RIGHT(A1,2)

 ="20" & TEXTJOIN("/",,INDEX(MID(A1,ROW($A$1:$A$3)*2-1,2),))
とか。

結果を、シリアル値(=日付型)にしたい場合は、
 =DATEVALUE( 上記の式 )
のようにしておけば、シリアル値の結果となります。
(こちらの場合は、表示書式を日付にしておく必要があります)


※ 8桁の場合であっても、同様の要領で変換可能です。
※ 元の文字列が、6桁か8桁かわからなくても対応したいような場合には、
  =IF(LEN(A1)>6, 8桁の場合の式 , 6桁の場合の式 )
 などとしておけば、元の値がどちらであっても対応できるようになるでしょう。
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございました。
この方法でやろうとした(出来た)のですが、スマートなやり方(関数)があるはずと質問させてもらいました。

お礼日時:2021/05/12 16:50

補足がありました。


B列のセルの書式は「日付」か「ユーザー定義(yyyy/mm/dd)括弧除く」にて。
    • good
    • 0

単純にこういう感じでは希望通りになりませんか?



A1:180825
A2:20210512

B1(セルの書式は日付):
=IF(LENB(A1)=8,DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2)),IF(LENB(A1)=6,DATE("20"&MID(A1,1,2),MID(A1,3,2),MID(A1,5,2)),"×"))

B2(セルの書式は日付):
=IF(LENB(A2)=8,DATE(MID(A2,1,4),MID(A2,5,2),MID(A2,7,2)),IF(LENB(A2)=6,DATE(MID(A2,1,2),MID(A2,3,2),MID(A2,5,2)),"×"))
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング