非時間テキスト値を適切な時間に変換する方法


1

私のスプレッドシートには次のような時間値があります
::15
:00:23
:47:15

Excelは、それらを実際の時間値として認識しませんが、代わりにそれらの値をテキストとして返します。そのため、Excelでは数値と​​して表示されないため、数学関数は機能しません。
これらの値を適切な数値に変換するにはどうすればよいですか?VBAを使用せずにこれを実行できますか?


それらの例の時間値は何を表すと思われますか?それらはすべて先行ゼロが欠落しているだけですか?または、それらはランダムに不正な形式ですか?
hBy2Py

エクスポートされた.CSVから不正な形式です。これらは、適切に形成された他の時間値とともに列にリストされた時間値であると想定されています。ただし、それらに対して数学関数を実行すると、Excelはそれらを時間値として認識しないため、エラーが返されます。例:テキストに変換された場合、1:30:00は0.0625ですが、:30:00は単に ":30:00"として返されます。したがって、本質的に、先頭のゼロが欠落していますが、:00:23の例に示すように常にそうではありません。
-OmniDo

1
正しい- それらが不正な形式である方法を正確に知る必要があり、その不正形式のモードがすべての不正な値に対して一貫しているかどうか。「ゼロ時間」を示す先行ゼロが欠落していますか?または、時間と分の両方が欠落している可能性があるように見えますか?
hBy2Py

1
特に、「:00:23」は真夜中の23秒前、または真夜中の23分前のはずですか?
hBy2Py

その例では、 ":00:23"は23秒の値であると想定されています。最大値はすべて1:00:00であり、Excelは<何らかの理由で>午前1時と見なします。そのため、先頭のゼロが欠落しています。
OmniDo

回答:


1

適切に構築され、ネストされた一連のIFステートメントでこれを処理する必要があります。

Excelの切り取り

式は次のとおりです。

=IF(LEFT(C7,1)=":",IF(ISERROR(FIND(":",C7,2)),TIMEVALUE("0:0"&C7),TIMEVALUE("0"&C7)),C7)

使い方:

  • 外側の条件、はIF(LEFT(C7,1)=":",...)、すべての不正な値がコロンで始まるという事実を利用しています。

    • 最初の文字がコロンではない場合、値はそのまま報告されるだけで問題ありません。 C7
    • 最初の文字コロンの場合、制御は内部条件に渡されます。
  • 前述のように、内部条件IF(ISERROR(FIND(":",C7,2),...)は、コロンが実際に最初の文字として見つかった場合にのみアクティブになります。次に、文字列の残りの部分でコロンを見つけようとします。パー行動FIND一切のコロンが見つからない場合機能、#VALUE!エラーが返され、検出されたことにより、ISERROR
  • FINDエラーが返された場合、ゼロ時間とゼロ分の両方の数字を文字列の先頭に追加する必要があります。"0:0"&C7
  • FIND数値が返される場合、別のコロンが存在し、ゼロ時間の数値のみを追加する必要があります。"0"&C7
  • TIMEVALUE すべての場合に、時間値文字列が実際に時間値として解釈されるようにするために使用されます。

あなたはあなたの知識の功績です。感謝します!これで、この式をVLOOKUP内にネストできますか?;)
OmniDo

はい、あなたはそれを必要とする他の式に全部を入れることができるはずです。複数の場所で同じ値を使用する必要がある場合、扱いにくくなります。その場合は、ヘルパーセルまたは列を追加して、VLOOKUP
hBy2Py

ここでの唯一の問題は正しい構文です(これは私がよく知らないものです)。なぜなら、私が使用している現在の数式は次のとおりです:=IFERROR(VLOOKUP(B32,filename.csv!$A:$Q,4,FALSE),"")参照した数式には実証済みのセル値が含まれているためです。
-OmniDo

VLOOKUP問題は、この質問の範囲外です。新しい質問を投稿して、解決の助けを得てください。(これ以上支援する時間はありません。新しい質問を作成することで、より迅速に支援を受けることができます。)また、実際に私の答えが不正な形式の時間の問題に対処した場合、私は私の答えがあることを最も感謝しますThe Answer™とマークされています。:-)
hBy2Py

これに対する1つの更なる注意:あなただけの時間をしたい場合0:00:001:00:00ように、値が入力された##:##と解釈されますhh:mmではないとしてmm:ss。これを処理するには、余分なフィネスが必要ですが、実行可能である必要があります。
hBy2Py
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.