2014-06-17 103 views
0

我在單元格A1中具有以下文本時間戳。 22-OCT-13 03.40.00.000000000 AM。在B1中,我有以下公式:=TIME(HOUR(MID(A1,11,2)),MIN(MID(A1,14,2)),SECOND(MID(A1,17,2)))Excel將文本轉換爲時間戳

它產生12:40 AM。小時函數返回零,但分鐘函數工作正常。我無法弄清楚它有什麼問題。

+0

嘿,我只是意識到你可能會錯過最後的AM/PM。編輯我的答案也是這樣考慮的。 – Jerry

回答

3

MIN是從值列表中返回最小值而不是MINUTE公式的「最小」公式。

我認爲你不熟悉TIME()HOUR()MINUTE()

TIME()取'正常'值並將它們轉換爲時間值。如果您有TIME(H, M, S),H是小時數(不是時間戳),M是分鐘數(不是時間戳),S是秒數(又是時間戳)。

HOUR()需要時間值並從中提取小時。

MINUTE()SECOND()類似於HOUR()。你大概意思已經是:

=TIME(MID(A1,11,2),MID(A1,14,2),MID(A1,17,2)) 

當您使用MID()你得到一個號碼,而不是一個時間戳。所以,HOUR取這個數字,將其解釋爲時間戳並返回小時。在你的例子中,第一個MID返回03。在excel中,如果將其轉換爲時間戳,則會得到03/01/1900 00:00(以dd/mm/yyyy hh:mm格式),因此小時爲0


編輯:

=SUBSTITUTE(SUBSTITUTE(A1,".",":"),":",".",3)*1 

的:

順便說一句,你可以,如果你想保留的日期和時間(末尾不忘AM/PM使用這個公式原來的日期/時間差不多可以通過Excel來理解,將全部的.替換爲:,然後用.替換第三個(最後一個):,再乘以1以告訴Excel將其轉換爲數字。而且應該這樣做。