后台系统导出来的工单历时数据,是文本格式的,如"1天18时12分28秒",要统计工单平均历时,只能整成数值格式的了。
方法:将文本格式里面的数字抽取出来,再组合成excel能理解的数值。
excel里面是怎么表示1天18时12分28秒这个时间的呢,在excel里面:1天的时间就用1表示,那么1小时、1分钟、1秒就可以通过以下方式计算:
于是1天18时12分28秒就等于1*1+18*1/24+12*1/1440+28*1/86400≈1.75865740740741.
我们把步骤分解一下:
1)从文本格式里面,把数字取出来,分为天、时、分、秒,如果没有则设置为0
2)按照计算式将对应的数值计算出来
3)采用自定义公式的方式将其在vba里面实现
上面的1)、2)两步用VBA实现出来如下:
Function shijian(str As String) As Double
Dim tian, shi, fen, miao As Double
tian = 0
shi = 0
fen = 0
miao = 0
If InStrRev(str, "天") <> 0 Then
temp = InStrRev