Excel字符串转换

Excel字符串转换,excel,Excel,如何将excel电子表格B4单元格中的以下数据:“1天23小时11分钟”转换为我可以运行数据透视表和图表的数字 理想情况下,我希望能抓紧时间,只处理时间和天数,并产生一个价值(小时) 1天=8小时工作日 谢谢 CSC尝试WORKDAY功能。如果单击该单元格,并键入=WORKDAY(8,1),它将告诉您所需的信息。希望有帮助 这里有一个VBA方法。如果您不想要VBA方法,请告诉我,我将删除它 将此代码放入模块中。此代码考虑了天/天和小时/小时 代码 Function ConvertToHours(

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

理想情况下,我希望能抓紧时间,只处理时间和天数,并产生一个价值(小时)

1天=8小时工作日

谢谢


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你总是让我惊讶:)