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

Power Query:将文本格式的时分数据转换为Duration格式

在Power Query的M语言中将文本时间转换为Duration格式

当然有对应的语法,M语言提供了直接的函数和灵活的自定义处理方式,以下是针对不同文本格式的解决方案:

1. 直接使用Duration.FromText函数(适用于"hh:mm"格式文本)

如果你的文本列格式是标准的小时:分钟形式(比如"01:45"、"2:30"这类带/不带前导零的格式),可以直接调用Duration.FromText函数完成转换:

Duration.FromText([你的时间文本列名])

这个函数会自动解析文本,返回对应的Duration类型值(比如#duration(0,1,45,0)代表1小时45分钟)。

2. 自定义拆分转换(适用于非标准格式文本)

如果你的文本格式不是hh:mm(比如包含中文描述,如"3小时20分"),可以通过拆分文本提取小时和分钟数值,再用Duration.From构建Duration:

let
    // 拆分文本,这里以":"分隔为例,可根据实际格式调整分隔符
    splitParts = Text.Split([你的时间文本列名], ":"),
    // 提取小时并转为数值
    hourValue = Number.From(List.First(splitParts)),
    // 提取分钟并转为数值
    minuteValue = Number.From(List.Last(splitParts))
in
    // 构建Duration:#duration(天, 小时, 分钟, 秒)
    Duration.From({0, hourValue, minuteValue, 0})

3. 错误处理(避免格式错误导致失败)

如果列中存在格式不规范的文本,可以用try otherwise捕获错误,返回空值或自定义提示:

try Duration.FromText([你的时间文本列名]) otherwise null

转换完成后,你可以直接对Duration列进行月度汇总(比如用List.Sum函数),或者通过Duration.TotalHours([Duration列])将时长转为总小时数,方便在仪表盘中进行可视化统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:02:08