2017-04-03 10 views
2

私は、この形式で日付がいっぱいの列を持っています.mmddyyyyを解析してmm/dd/yyyyに変換できるかどうか疑問に思っていました。私は行全体を選択してからフォーマット - >数値 - >日付をクリックしようとしましたが、これを行うと、12082016のような日付は6/7/34979になりますが、もちろん意味がありません。どのようにこれを修正するための任意のアイデア?7桁または8桁の数字を真の日付に変換する

編集:

Examples: 

7072016 12/11/2021 
1202017 12/2/2017 
10042016 10/4/2016 
9212016 8/12/2023 

日付列がどこにあることがあるように私はFにBを変えました。奇妙なのは、いくつかの値が正しいことです。

=date(right(B2, 4), left(B2, 2), mid(B2, 3, 2)) 
+0

Excelでテキストから列への固定幅、MDY、仕上げを使用します。しかし、Googleのシートのテキストとコラムはそれほどうまくいくとは思わない。 – Jeeped

+1

'=日付(右(B2、4)、左(B2、2)、中(B2、3,2))'の 'ヘルパー'列を使用できますか? – Jeeped

+0

これは少し実際には動作しているようですが、フォーマットは正しいものの、実際の日付は間違っています。これを正しく設定する方法についての詳細は? – Macterror

答えて

4

7桁と8桁の数字を考慮する必要があります。どうやら、あなたのデータをインポートするときにいくつかの先行ゼロを失った。

=date(right(right("0"&A2, 8), 4), left(right("0"&A2, 8), 2), mid(right("0"&A2, 8), 3, 2)) 
' or, 
=--replace(replace(right("0"&A2, 8), 5, 0, "/"), 3, 0, "/") 

セルをmm/dd/yyyとしてフォーマットします。彼らは今、真の時代です。

enter image description here

+0

これはうまくいきました!答えてくれてありがとう! – Macterror

3

Googleスプレッドシートを使用している場合は、10未満ヶ月間の先行ゼロを含む、完全な8桁の数字は、そこにあることを確認するために00000000として、その中の数と列の書式を設定する必要があります。

The Custom Number Format option on the Google Sheets Format Menu

:これを行うには、その後、 フォーマットメニューから、 その後、 カスタム数値書式を選択MMDDYYYY番号と列を強調

その後、起動したダイアログボックスで、00000000(8ゼロ)を入力し、を適用]をクリックします:

Google Sheets' Custom Number Format Dialog

あなたのデータは再フォーマットされ、あなたの日付は正しいはずです:

The resulting dates are correct when the MMDDYYYY numbers are zero-filled.

希望すると便利です。

+0

Googleシートのワークシート関数は、表示されている(フォーマットされた)番号で動作します。ハァッ。それを知らなかった。きちんとしたトリック! +1 – Jeeped

+0

Excelはフォーマットされた番号では機能しません。その場合、あなたの答えが行く方法です。 –

0

日付&時間の値は基本的に数字の系列なので、フォーマットされている日付または時刻に常に変換されます。 Bttrはカスタムフォーマットを使用するか、必要に応じてデフォルトを変更します。 任意の数値を日付に変換する場合は、 最初に年の最初の日付を書き出して数値に変換し、トレンドを取得し、nXt値を書き込んで、&を適切な形式に変換します。

0

は、正規表現を使用して、この式を試してみてください:

=TEXT(REGEXREPLACE(TEXT(A1,"00000000"),"(\d{2})+(\d{2})+(\d{4})","$1/$2/$3"),"m/d/yyyy")

変更m/d/yyyyあなたが必要とする任意の日付フォーマットに。

関連する問題