Excelstring转换

如何将Excel电子表格的单元格B4中的以下数据转换为可以运行数据透视表和图表的数字“1天23小时11分钟”?

理想情况下,我想抓取分钟,只处理时间和date,并产生一个值(小时)。

1天= 8个工作日

谢谢

CSC

这是一个VBA方法。 让我知道如果你不想要一个VBA方法,我会删除它。

将此代码放在一个模块中。 此代码考虑了days/day hrs/hr之间的所有匹配

 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})

尝试WORKDAYfunction。 如果您单击该单元格并键入= WORKDAY(8,1),它应该告诉您所需的信息。 希望能帮助到你!