0

d.hh.mm.ss と hh.mm.ss の形式のデータがあり、両方を HH.MM.SS の時間値に変換する必要があります

A1 のテキスト文字列は 16.21:38:27 です A2 のテキスト文字列は 04:08:45 です

結果のセルには、B1 405:38:27 B2 04:08:45 が表示されます。

=LEFT(A1,SEARCH(":",A1)-1)+TIMEVALUE(MID(A1,SEARCH(":",A1)+1,255)) を使用してみましたが、結果が間違っています A1 は 403 と表示されます: 29:24 A2 は 104:45:00 として表示されます

両方の文字列に対して 1 つの数式が必要です

4

3 に答える 3

1

4:08:45 は有効な時刻形式であり、16.21:38:27 はそうではないため、この式はどちらの場合でも機能するはずです。

=IF(ISNUMBER(A1+0),A1+0,RIGHT(A1,8)+LEFT(A1,FIND(".",A1)-1))

結果セルを [h]:mm:ss としてフォーマットします

于 2012-07-27T22:22:32.753 に答える
0

ここにあります:

= IF(ISERROR(FIND(".",A1)),
    TIMEVALUE(A1), 
    VALUE(LEFT(A1,FIND(".",A1)-1)) + TIMEVALUE(MID(A1, FIND(".", A1)+1, 8)))

もし "。" 文字列に存在しないため、単純に TIMEVALUE() を使用して時間を解析します。それ以外の場合は、"." の前後の部分を解析します。別々に。日数は結果の整数部分を形成し、時間は小数日として計算されます。これは、標準の書式設定ダイアログを使用して [h]:mm:ss 形式に書式設定されます。

書式設定された数値ではなく、変換された時間/分/秒の文字列をB1 に格納する場合は、上記の全体を でラップしTEXT(formula above, "[h]:mm:ss")ます。

于 2012-07-27T21:26:13.090 に答える
0

@TimWilliamsは頭に釘を打ちました。タイプミスがあります。に変更16.21:38:27する16:21:38:27と、正常に動作します。数式をさらにラップして長さを確認できます。8 文字を超える場合は、日付が追加されたことを意味します。この例を参照してください

これを試してください(これは両方に使用できます)

=IF(LEN(A1)>8,LEFT(A1,SEARCH(":",A1)-1)+TIMEVALUE(MID(A1,SEARCH(":",A1)+1,255)),TIMEVALUE(A1))

スナップショット

ここに画像の説明を入力

編集

式にハードコーディングされていることに気付きました255。その必要はありません。これも機能します。

=IF(LEN(A1)>8,LEFT(A1,SEARCH(":",A1)-1)+TIMEVALUE(MID(A1,SEARCH(":",A1)+1,LEN(A1)-SEARCH(":",A1)+1)),TIMEVALUE(A1))

ところで、誰にでもできるようにするためTRIMに、上記の式にも関数を追加します...

于 2012-07-27T21:35:31.573 に答える