2016-04-27 12 views
3

次のテキスト変換のための作業式があります。しかし、YYYY形式で年を表示するために、後続の0を追加する必要がある理由はわかりません。Excel:日付文字列変換の文字列

2016年4月21日には、それは非常にシンプルでストレートフォワードだ2016年4月21日

=(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))+0 

に変換します。ただし、数式の最後に0を削除すると、2016ではなく16だけが表示されます。しかし、私は右(A2,2)ではなく右(A2,4)を実行できます。しかし、私はまだなぜその理由を知りたいですか?誰でも?ありがとう!

+0

どのようにゼロを追加すればうまくいくのか分かりましたか? ;) – SrinivasR

+0

真実は、このコードは私のものではありません。私はそれをどこかのオンラインで見た。私はちょうどそれの背後にある理由を理解していない。 – lulumink

+2

ゼロを追加すると、Excelは文字列を数値に変換します。適切な書式設定では、Excelは数値をDateとして表示します。 –

答えて

6

末尾のゼロは、文字列(+0の左側のすべて)を数値として扱う数学演算になります。

あなたはまた、* 1ではなく0

=(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))*1 

の使用ができます。また、0をドロップする可能性があり、フロントアドオンで - 。前(と、それはすべて同じことを行う必要があります

=--(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2)) 
+0

今すぐ明らかになりました!どうもありがとう!数式演算子を数式に追加すると、Excelはそれを何かの代わりに数値のように扱います。意味をなさない! – lulumink

5

エドが正しく、それは数としてあなたの日付文字列を処理しているためであると答えました。

ただし、Excelはそれが本当に何であるか数を取得する文字列を解釈する必要があり、これを行うには、それが依存していると 地域の設定。 米国の地域設定では、数式は素晴らしいですが、英国の地域設定でExcelに接続すると、「04/21/16」は英国の有効な日付または番号ではないため#Valueを取得します。

この問題を回避するには、地域の設定に関係なく機能するDATE()関数を使用して日付に変換する必要があります。

=DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2)) 
+0

代替ソリューションのPhilに感謝します!魅力のようにも動作します! – lulumink

+0

これは良い答えです。日付をあいまいにするためにローカル設定に頼るのを避けてください。 –

+0

これは、日付を変換してこれを答えとして完全にサポートするより良い方法です(upvoteを読む)。日付価値を上回っています...しかし、技術的には質問は本質的に「一体何が+0何をしているのですか?しかし、それは髪を分割するかもしれない。 –

関連する問題