公式与hh:mm:ss格式的单元格可以正常工作,但是相同的公式给单元格带有mm: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 …我有一个巨大的数据库,这将是非常困难的手动改变它….请帮助…

默认情况下,Excel会将格式为xx:xx或x:xx的数字视为h:mm,而不将其视为mm:ss。

我没有看到一种方法来将这些值转换为有效的hh:mm:ss,因为没有Excel的句柄来确定哪个数字缺less小时部分。

最好的select是更改写入数据的例程,并将input的小时数设置为00:在mm:ss值之前。

只要数据列被格式化为文本,就可以testingstring中存在多less个冒号,并根据是否有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))

很难判断你的数据是否是文本格式化的, 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") = 22

如果你想要的结果是79560那么你可以添加一个MODfunction,如下所示:

=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会给你一个错误。

Guyz,thx回答这个问题..这是我试过的 –

第一个我应用= TEXT(D2,“hh:mm:ss”)公式到单元格值,然后用= IFERROR(SUMPRODUCT((“00:”&d2)+0),d2),所以19:23变成了○时19分23秒..

它的工作,虽然我不得不做一些手动工作的数据…