Excel でテキストを日付に変換する

Excel でテキストを日付に変換する

「2021 年 1 月 8 日から 2021 年 1 月 15 日までの期間の価格」というテキストを 2021 年 1 月 15 日までに変換するのにご協力が必要です。

数式を使用しています=DATE(RIGHT(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",4),MID(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",4,2),LEFT(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",2))が、得られる出力は 15/01/2021 ではなく 15/01/2120 です。

上記について誰か助けていただけませんか?

答え1

文字列は 8 文字の日付とそれに続くスペースで終わるため、次のように使用できます。

=LEFT(RIGHT(TRIM(Edited!A2),8),6) & RIGHT(RIGHT(TRIM(Edited!A2),8),2)+2000

ここに画像の説明を入力してください

注記:

これは日付を分離し、2桁の年を4桁の年に変換します
エクセル365結果
は文字列であり、実際の Excel 日付ではありません。

編集#1:

月を最初に置くには:

=MID(RIGHT(TRIM(Edited!A2),8),4,3) & LEFT(RIGHT(TRIM(Edited!A2),8),3) & RIGHT(RIGHT(TRIM(Edited!A2),8),2)+2000

編集#2:

使用する場合はエクセル365次のようにして実際の Excel 日付を作成します。

=LET(d,RIGHT(TRIM(Edited!A2),8)    ,DATE(RIGHT(d,2)+2000,MID(d,4,2),LEFT(d,2)))

ここに画像の説明を入力してください

答え2

このシンプルな方法はあなたにとって効果的でしょうか?

=DATEVALUE(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100)))

おっしゃるとおり、
=TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))文の最後の文字列を取得し、
その=DATEVALUE()文字列を datetime データに変換します。結果はコンピュータのロケール設定によって異なります。
さらに、列の書式を datetime に設定し、簡単にカスタマイズする必要があります (mm/dd/yyyyまたはdd/mm/yyyyなど)。

最後に日付文字列の長さがわかっていて、それが固定長である場合は、さらに簡単になります。 =DATEVALUE(RIGHT(TRIM(Edited!A2),8))

関連情報