2014-02-21 107 views
1

我對某些文件仍然存在嚴重問題。這是一個相當愚蠢的問題,但我一直在努力工作了很長時間,找不到解決方案。 我需要在時間戳中引導零,至少在ms級別。 ,我的軟件,使總的時間戳是這樣的:(例子)如何在Excel中添加前導零(帶ms的時間戳沒有前導零)

9:55:1:19(即9H,55分,1秒,19毫秒)

而我需要看起來像

09:55:01:019

在Excel中進行轉換沒有問題。我用

=VALUE(SUBSTITUTE(G2;":";",";3))

,但我總是得到

09:55:01:190(190ms !!)

因此,毫秒總是念想逗號值,這是從軟件的角度理解的。

我想要一個解決方案,將正確的值附加到新列中每行的末尾或直接將原始列(D)中的值更改爲正確的值。 (追加是好的,因爲我的其他腳本已經這樣工作了!)

你真的很快能幫忙嗎?

https://www.dropbox.com/sh/3ch6ikddplnyjgg/vUfnVgbbzH這裏是一個例子文件

+0

「msec」列中的值不會被Excel識別爲時間 - 它將它們看作是文本。你有沒有可用的原始時間值? –

回答

0

具有值在A1像:

0.413206238

下式:

=SUBSTITUTE(TEXT(A1,"hh:mm:ss.000"),".",":") 

將顯示:

09:55:01:019

編輯#1:

或者,如果你想將這些值轉換列d,到位。選擇單元格,然後運行這個小宏:

Sub FFormat() 
    Dim r As Range, L As Long, U As Long 
    For Each r In Selection 
     ary = Split(r.Text, ":") 
     U = UBound(ary) 
     L = LBound(ary) 
     For i = L To U 
      If Len(ary(i)) = 1 Then 
       ary(i) = "0" & ary(i) 
      End If 
     Next i 
     If Len(ary(U)) = 2 Then 
      ary(U) = "0" & ary(U) 
     End If 
     r.Value = Join(ary, ":") 
    Next r 
End Sub 
+0

是的,非常酷,謝謝! – Milarepa108

0

如果R12(我的例子)原來是文本,就可以進入這個大公式::)

=TEXT(LEFT(SUBSTITUTE(R12;":";REPT(" ";20));4);"00") & ":"&TEXT(MID(SUBSTITUTE(R12;":";REPT(" ";20));14;20);"00") & ":" & TEXT(MID(SUBSTITUTE(R12;":";REPT(" ";20));34;20);"00") & ":" & TEXT(MID(SUBSTITUTE(R12;":";REPT(" ";20));54;20);"000") 

根據您的區域設置你可能需要更換字段分隔符「;」經「」

0

你的數據在G列擁有領先的空間 - 這個公式在新列應該轉換爲有效時間值是否有前導空格或不

=LEFT(TRIM(G2);FIND("^";SUBSTITUTE(TRIM(G2);":";"^";3))-1)+LOOKUP(1000;RIGHT(G2;{1;2;3})+0)/86400000

格式並[h]:MM:ss.000

這將應付單個或兩位數毫秒,假設如果沒有毫秒則仍必須第三:接着是零。還可以應對單位小時,分鐘或秒