2017-01-10 10 views
0

Excelで日付と時刻として表示する文字列を書式設定しようとしています。混在したテキストからの日付の抽出と書式設定

文字列は6/1/2009 17:55:9です。ゼロがなく、dd/mm/yyyyのhh:mm:ssにはフォーマットされないため、この文字列はソートできません。

試してみると、01:06:2009 17:55:09のように出力できる段階に達しています。しかし、私が試したカスタムフォーマットに関係なく、まだソートされません。私はこの出力を取得するために出ている式である:

=IF(VALUE(TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),2*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),2*99-98,99))&":"&(IF(VALUE(TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),1*99-98,99)))<10,"0",""))&TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),1*99-98,99))&":"&(IF(VALUE(TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),3*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((LEFT(C2, SEARCH(" ",C2,1))),"/",REPT(" ",99)),3*99-98,99)))&" "&(IF(VALUE(TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),1*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),1*99-98,99)))&":"&IF(VALUE(TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),2*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),2*99-98,99))&":"&(IF(VALUE(TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),3*99-98,99)))<10,"0","")&TRIM(MID(SUBSTITUTE((RIGHT(C2,LEN(C2)-SEARCH(" ",C2,1))),":",REPT(" ",99)),3*99-98,99))) 

私はここから何をすべきか全く手がかりをしたんが、私は細胞から値を抽出して、それをソートしようとしたが、それはしていませんいずれかの作業。

誰も手がかりがありません。 乾杯、MS。

EDIT:@CallumDAと@ elmer007のアドバイスのおかげで、* 1か= VALUEを使用して最初に数値に変換する必要があることがわかりました。 C列の元の日付に並べ替えを適用できましたが、dd/mm/yyyy hh:mm:ssの形式で表示することを希望しましたが、一部の値は1桁でした。これを修正するために、日付と時刻の各部分を個別に検索して抽出し、1桁の場合はそれぞれの先頭にゼロを追加しました。そうすることで、正しいフォーマットになっているように見えましたが、* 1がなければそれはまだ数字ではなく文字列だったので、日付でソートすることはできませんでした。

私はこれらすべての技術的なことを少しでも理解することなく説明しようとしているので、これはまだ非常に混乱していることを理解します。ごめんなさい!

+0

私には何が欠けていますか?私はあなたの文字列をExcelに貼り付け、すぐに日付としてフォーマットしました – CallumDA

答えて

0

Excelで日付と時刻として表示する文字列をフォーマットしようとしています。
... dd/mm/yyyy hh:mm:ssにフォーマットされないため、ソートできません。

何らかの理由で日付が文字列としてフォーマットされている場合は、A>Zでしかソートできません。文字列を時間にソートするには、文字列を数値に変換する必要があります。カスタムフォーマットを使用して、必要なものをdd/mm/yyyy hh:mm:ssに与えることができます。

はここ数に文字列を変換するには、いくつかの方法があります。

=A1*1 
=VALUE(A1) 

今、あなたの文字列6/1/2009 17:55:9は(確認するためにGeneralとしてフォーマット)39819.7466319444なるはず。整数部分は日付を表し、小数部分は時刻を表します。

あなたの日付はこの時点でソート可能ですが、カスタムフォーマットdd/mm/yyyy hh:ss:mmを適用して読みやすくすることもできます。

+0

編集を参照してください。しかし、はい、これはうまくいった、ありがとう! – user7397354

+0

幸せに助けてください - 質問を更新していただきありがとうございます、それは今意味があります:) – CallumDA