2014-02-11 37 views
0

我的數據顯示爲這個式正常工作與在HH細胞:mm:ss格式,但相同的公式給出了毫米細胞不正確的值:ss格式當我應用公式

WAIT 
29:45:00 
2:41:14 
46:06:00 ' <--- 
0:25 
19:23 ' <--- 
2:25:12 
37:36:00 
2:12:24 
1:34:35 
1:54:13 
13:00:53 

= HOUR(F7)* 3600 + MINUTE(F7)* 60 + SECOND(F7)至46:06:00,它給出了正確的答案,但是當同一個公式適用於19:23時,Excel可識別HHMMSS中的19:23格式,但它是MMSS ... 我有一個巨大的數據庫,這將是非常困難的手動改變它... 請幫助...

+1

你確定你的公式給你需要的結果如29:45:00 - 換句話說,你的結果是什麼? – pnuts

+1

是的,我正在得到所需的答案 – Sandy

回答

1

默認情況下,Excel將數字格式xx:xx或x:xx作爲h:mm,而不作爲mm:ss。

我沒有看到一種方法將這些值轉換爲有效的hh:mm:ss,因爲Excel無法確定哪個數字缺少小時部分。

最好的選擇是更改寫入數據的例程,並將輸入的小時數設置爲00:在mm:ss值之前。

+0

是'=(F7-INT(F7))* 86400'值得一拍? – pnuts

+0

19:23:00與19:23一起試試,這意味着被解釋爲00:19:23 - 不一樣。 – teylyn

+0

0.0134606481481481格式化mm:ss顯示我'19:23'和'my'公式,返回'1163'。 0.542280092592593格式化[hh]:mm:ss顯示我'19:23:00','my'公式返回'69780'。我懷疑這些都是需要的答案 - 少於24小時,更多,我不確定。 – pnuts

1

只要數據列被格式化爲文本,就可以測試字符串中存在多少個冒號並根據是否存在1或2來應用不同的計算。如果只有1個冒號,則使用Excel認爲是以分鐘爲單位的小時數,Excel認爲以秒爲單位的分鐘數。

=IF(LEN(F7)-LEN(SUBSTITUTE(F7,":",""))=2,HOUR(F7)*3600+MINUTE(F7)*60+SECOND(F7),HOUR(F7)*60+MINUTE(F7))

+1

對於'0:25',我的公式給了我答案25,這正是我認爲OP所期待的即以秒錶示的時間長度。 – MattClarke

+0

對不起,我正在(比平常多)一個白癡。 – pnuts

+0

嘿,我看過你在拿到8000代表的時候拿到了100代表!所以幾乎沒有白癡的跡象。 – MattClarke

0

這很難告訴你的數據是否是文本格式的或不 - HOUR/MINUTE/SECOND功能很好的工作文字格式倍實際倍。你用這個公式得到了什麼結果?

=ISNUMBER(F7)

如果給你假,那麼你的「時間」是文本格式在這種情況下,這個公式會給你總秒數:

=LOOKUP(999,({"","0:"}&F7)+0)*86400

格式結果細胞一般

這將根據需要將19:23解釋爲19分23秒。對於46:06:00,您將得到結果165960,總時間爲46小時6分鐘。正如pnuts所指出的那樣,您的公式只會在刪除多個24小時之後向您提供剩餘秒數。這是因爲

=HOUR("46:06:00") =

如果你想要得到的結果是79560那麼你可以添加一個MOD功能是這樣的:因爲它利用

=MOD(LOOKUP(999,({"","0:"}&F7)+0),1)*86400

LOOKUP功能在這裏工作將「0:」連接到19:23(然後進行類似+0的計算)開始的事實將19:23(19小時23分鐘)至0:19:23(零小時19分23秒),但連接0:至46:06:00,然後加0會導致錯誤。

0

Guyz,thx回答這個問題.. 這裏是我tried-

第一i-施加 = TEXT(D2, 「HH:MM:SS」)式的單元格的值,然後用於= IFERROR(SUMPRODUCT(( 「00:」 & D2)+ 0),D2),因此得到了19:23變爲0時十九分23秒..

它的工作,雖然我不得不這樣做對數據部分手工作業...