2017-04-05 15 views
0

「2017年3月30日、05:00:00.000」のような形式の日付をExcel日付の値に変換したいですか? VBAではなくセル式を使用してこれを行うことができる最もエレガントなソリューションは何ですか?Excelセルで非標準日付形式を解析する

+0

ミリ秒は常にゼロですか?もしそうでなければ、それらを保管することは重要ですか? – Jeeped

答えて

1

あなたが式

enter image description here

に必要があるとして、これは標準"rd","th","st","nd"

=--(LEFT(A1,MIN(FIND({"rd","th","st","nd"},A1 & "thrdstnd"))-1)& ", " & SUBSTITUTE(MID(A1, MIN(FIND({"rd","th","st","nd"},A1 & "thrdstnd"))+2,LEN(A1)),",","")) 

を行いますあなたが好きなように次に、あなたがそれをフォーマットすることができ、他のサフィックスを追加することができます。

0

あなたは本当の日付を希望して、時刻部分をドロップする場合:

=DATEVALUE(SUBSTITUTE(LEFT(A1,FIND(",",A1)-1),"th",",")) 

お持ちの場合は、巣SUBSTITUTE()「ND」を処理する機能と、「ST」の序にする必要がありますそれら:

=DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND(",",A1)-1),"th",","),"nd",","),"st",",")) 

enter image description here

+2

st,nd,rdという問題があります。 – Jeeped

+0

@Jeeped私はアップデートであなたの懸念を述べました。 –

1

ネストされたIFERROR関数は、数序の多様性を扱うことができます。

=--SUBSTITUTE(REPLACE(A2, IFERROR(FIND("st ", A2),IFERROR(FIND("nd ", A2),IFERROR(FIND("rd ", A2), IFERROR(FIND("th ", A2), LEN(A2))))), 3, ", "), ", ", " ",2) 

enter image description here

私は[Color10]mmmm dd, yyyy hh:mm:ss.000;;;[Color3]@のカスタム数値形式を使用していました。テキストが左揃えであり、真の日付が右揃えであることを除けば、これはテキストの見た目のような日付を赤いフォントで、真の日付は緑のフォントで表します。

関連する問題