Excel 天小时分钟d小时:毫米:秒

Excel 天小时分钟d小时:毫米:秒,excel,time,duration,Excel,Time,Duration,我需要转换: 12天2小时43分钟 3小时18分钟 1天1分钟 进入: 有没有办法在所有情况下只使用一个简单的公式?谢谢大家! 干杯 Medicloreans考虑以下UserD定义的F功能(UDF): 用户定义函数(UDF)非常易于安装和使用: ALT-F11将显示VBE窗口 ALT-I ALT-M打开一个新模块 粘贴内容并关闭VBE窗口 如果保存工作簿,则自定义项将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx 要删除UDF

我需要转换:

  • 12天2小时43分钟
  • 3小时18分钟
  • 1天1分钟
进入:

有没有办法在所有情况下只使用一个简单的公式?谢谢大家!

干杯


Medicloreans考虑以下UserD定义的F功能(UDF):

用户定义函数(UDF)非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,则自定义项将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

    要删除UDF,请执行以下操作:

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的自定义项,请执行以下操作:

    =myfunction(A1)

    要了解有关宏的更多信息,请参阅:

    有关自定义项的详细信息,请参见:


    必须启用宏才能工作

    在哪个程序中?或语言输入值的格式是什么?他们发短信了吗?日期/编号?是需要按您发布的确切格式转换为文字的数据吗?如果是,您希望结果(在您的示例中)分别为
    107:20
    3:18
    72:1
    hh:mm
    
    Public Function NewTime(SIn As String) As String
       Dim nMinutes As Long, nHours As Long, V As Long
       Dim Tag As String
       ary = Split(SIn, " ")
    
       For i = 0 To UBound(ary) - 1 Step 2
          V = ary(i)
          Tag = Replace(ary(i + 1), "s", "")
          If Tag = "Day" Then nHours = nHours + 24 * V
          If Tag = "Hour" Then nHours = nHours + V
          If Tag = "Minute" Then nMinutes = nMinutes + V
       Next i
       NewTime = nHours & ":" & nMinutes
    End Function