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),它应该告诉您所需的信息。 希望能帮助到你!