Excel 2010中的小时计算

时间:2012-11-01 15:24:36

标签: excel

我有一个Excel 2010工作簿,其中包含一个值为9876:54:32(手动输入)的单元格,代表9876小时,54分钟和32秒的电话通话时间。

然后我有一个值为1000(手动输入)代表1000个电话的单元格。

我想将值除以每次通话的平均通话时间为592.615分钟。

我正在做一个常规= A1 / B1并且它给我一个错误。

*已编辑* 感谢Brain Webster纠正我的数学。我的意思是9.876小时。但重点是Excel给了我一个错误,而不是我的手工数学。玩弄它我发现Excel对我来说很好,价值高达9999:59:59。一旦我尝试使用10000:00:00及以上,它就不会将其识别为时间值。

4 个答案:

答案 0 :(得分:2)

我喜欢这些看似简单的谜语,所以这是我作为公式和VBA尝试的解决方案:

我原来的:

= (LINKS(A38;FINDEN(":";A38)-1)/24)+ZEITWERT("0"&RECHTS(A38;LÄNGE(A38)-FINDEN(":";A38)+1))

翻译:

= (LEFT(A38,FIND(":",A38)-1)/24)+TIMEVALUE("0"&RIGHT(A38,LEN(A38)-FIND(":",A38)+1))

这将为您提供持续时间给定10k文本的正确值。您只需要将单元格的格式设置为[h]:mm:ss。然后这些值看起来是一样的,但是一个是字符串,另一个是数字 - 这是一个主要区别;)

在vba中它看起来更容易,一旦定义,你就可以将它用作工作表函数。

Public Function GetDurationValue(ByVal strInput As String) As Double
  Dim arrResult As Variant

  arrResult = Split(strInput, ":") 'saves you parsing
  GetDurationValue = (arrResult(0) / 24) + _
                     TimeSerial(0, arrResult(1), arrResult(2))

End Function


A38 = "10971:12:14"
=GetDurationValue(A38)
=457.13349537037

答案 1 :(得分:1)

你可以使用LEFT和RIGHT函数来检索部分时间值,然后将这些值相加并乘以60 [分钟](分别为3600 [小时])。

小时,分钟,秒(A1是具有时间值的单元格)的类似内容:

B1=VALUE(LEFT(A1;FIND(":";A1)))*3600
B2=VALUE(LEFT(A1;FIND(":";A1; FIND(":";A1))))*60
B3=VALUE(LEFT(A1;FIND(":";A1; FIND(":";A1; FIND(":";A1)))))

现在你可以总结一下:

C1=SUM(B1;B2;B3)

然后通过呼叫计数潜水(A2是具有呼叫计数的小区):

D1=C1/A2

最后将其格式化为时间:

E1=TEXT(D1/(24*3600);"d \day\s hh:mm:ss")

BTW:我在Excel 2013中尝试过,当我将111:22:33输入一个单元格时,它会自动转换为时间。那么我可以像你一样分开它......

答案 2 :(得分:1)

似乎小时> Excel不会识别10000。因此,我们需要引入IF()以确定是否是这种情况,并确定小时> 10000

的替代公式

=IF(ISERROR(FIND(":",A2)),A2/B2, <SCRIPT IN CASE OF >10000>)

<SCRIPT IN CASE OF >10000>现在将成为:

VALUE(LEFT(A2,FIND(":",A2)))/24+VALUE(LEFT(A2,FIND(":",A2, FIND(":",A2))))/(24*60)+VALUE(LEFT(A2,FIND(":",A2, FIND(":",A2,FIND(":",A2)))))*(24*60*60)

结合并享受!

答案 3 :(得分:1)

假设您在A1中的时间不超过100,000小时,并且您始终显示小时,分钟和秒,那么此公式就足够了

=IFERROR(A1/B1,(LEFT(A1)*10000/24+RIGHT(A1,10))/B1)

将结果单元格格式化为[h]:mm:ss以将结果作为时间值

A1中的10971:12:14和B1中的1000应该提供10:58:16的结果[或格式化结果单元格为[m]:ss,以获得像{{1}的分钟和秒}}]

此版本可以使用任意数小时,有或没有秒

658:16