Excel字符串转换
如何将excel电子表格B4单元格中的以下数据:“1天23小时11分钟”转换为我可以运行数据透视表和图表的数字 理想情况下,我希望能抓紧时间,只处理时间和天数,并产生一个价值(小时) 1天=8小时工作日 谢谢Excel字符串转换,excel,Excel,如何将excel电子表格B4单元格中的以下数据:“1天23小时11分钟”转换为我可以运行数据透视表和图表的数字 理想情况下,我希望能抓紧时间,只处理时间和天数,并产生一个价值(小时) 1天=8小时工作日 谢谢 CSC尝试WORKDAY功能。如果单击该单元格,并键入=WORKDAY(8,1),它将告诉您所需的信息。希望有帮助 这里有一个VBA方法。如果您不想要VBA方法,请告诉我,我将删除它 将此代码放入模块中。此代码考虑了天/天和小时/小时 代码 Function ConvertToHours(
CSC尝试WORKDAY功能。如果单击该单元格,并键入=WORKDAY(8,1),它将告诉您所需的信息。希望有帮助 这里有一个VBA方法。如果您不想要VBA方法,请告诉我,我将删除它 将此代码放入模块中。此代码考虑了
天/天
和小时/小时
代码
Function ConvertToHours(rng As Range) As Long
Dim DAr() As String, HAr() As String, strVal As String
Dim D As Long, H As Long
If rng Is Nothing Then
ConvertToHours = 0
Else
strVal = LCase(rng.Value)
If InStr(1, strVal, "days", vbTextCompare) Then
DAr = Split(strVal, "days")
D = Val(Trim(DAr(0)))
If InStr(1, strVal, "hrs", vbTextCompare) Then
HAr = Split(DAr(1), "hrs")
H = Val(Trim(HAr(0)))
ElseIf InStr(1, strVal, "hr", vbTextCompare) Then
HAr = Split(DAr(1), "hr")
H = Val(Trim(HAr(0)))
End If
ElseIf InStr(1, strVal, "day", vbTextCompare) Then
DAr = Split(strVal, "day")
D = Val(Trim(DAr(0)))
If InStr(1, strVal, "hrs", vbTextCompare) Then
HAr = Split(DAr(1), "hrs")
H = Val(Trim(HAr(0)))
ElseIf InStr(1, strVal, "hr", vbTextCompare) Then
HAr = Split(DAr(1), "hr")
H = Val(Trim(HAr(0)))
End If
End If
ConvertToHours = (D * 8) + H
End If
End Function
屏幕截图
尝试使用此公式以十进制形式计算小时数
=SUM(MID(0&A1,FIND({d”,“h”,“m},A1)-2,2)*{480,60,1})/60
假设天、小时和分钟都存在-最多工作99天
如果你不在乎时间,那么你可以用
=SUM(MID(0&A1,FIND({“d”,“h”},A1)-2,2)*{8,1})
寻找VBA解决方案?如果一天=8小时,那么23小时11分钟
似乎很奇怪-我希望时间和分钟不超过7:59.“1天23小时11分钟”=“3天7小时11分钟”?@barryhoudini:用户想忽略分钟…OK Sid,我编辑了我的建议……+1你总是让我惊讶:)