You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将文本格式的HH:MM:SS时间列转换为时间格式并计算总时长

转换文本格式HH:MM:SS为时间格式并计算总时长

一、将文本时间列转换为时间格式

方法1:Power Query编辑器转换

  • 选中目标文本列,在「转换」选项卡的「数据类型」中选择「时间」,系统通常能自动识别HH:MM:SS格式。
  • 若自动识别失败,添加自定义列处理:
    1. 点击「添加列」→「自定义列」
    2. 输入公式(替换[文本时间列]为你的列名):
      #time(Text.BeforeDelimiter([文本时间列], ":"), Text.BetweenDelimiters([文本时间列], ":", ":"), Text.AfterDelimiter([文本时间列], ":"))
      
    3. 将新列的数据类型设置为「时间」。

方法2:DAX计算列转换

直接在数据模型中创建计算列,利用TIMEVALUE函数自动转换:

时间格式列 = TIMEVALUE([文本时间列])

二、创建总时长度量值

场景1:总时长不超过24小时

将所有时间转换为秒数求和后,再转回时间格式:

总时长 = 
VAR 总秒数 = SUMX('你的表名', HOUR([时间格式列])*3600 + MINUTE([时间格式列])*60 + SECOND([时间格式列]))
RETURN
IF(总秒数 = 0, BLANK(), TIME(INT(总秒数/3600), INT(MOD(总秒数,3600)/60), MOD(总秒数,60)))

场景2:总时长超过24小时(避免时间溢出)

将总时长以HH:MM:SS文本格式输出,支持跨天时长:

总时长(跨天) = 
VAR 总秒数 = SUMX('你的表名', HOUR([时间格式列])*3600 + MINUTE([时间格式列])*60 + SECOND([时间格式列]))
VAR 小时数 = INT(总秒数/3600)
VAR 分钟数 = INT(MOD(总秒数,3600)/60)
VAR 秒数 = MOD(总秒数,60)
RETURN
IF(总秒数 = 0, BLANK(), 小时数 & ":" & FORMAT(分钟数, "00") & ":" & FORMAT(秒数, "00"))

内容的提问来源于stack exchange,提问作者user19820140

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:38:26