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

Excel Power Query如何将文本转为Duration?适配两种时长格式

解决Excel Power Query中格式不一致的文本转Duration及后续排名、差距计算问题

步骤1:统一文本格式并转换为Duration类型

针对Interval Time列的两种格式(ss.zzz和mm:ss.zzz),通过补全缺失的小时/分钟部分,将文本统一转换为Duration类型:

  1. 打开Power Query编辑器,选中目标数据表格
  2. 点击添加列 > 自定义列,输入以下M语言公式:
= let
    timeStr = [Interval Time],
    hasColon = Text.Contains(timeStr, ":"),
    fullTimeStr = if hasColon then "0:" & timeStr else "0:0:" & timeStr
in
    Duration.FromText(fullTimeStr)
  1. 将新列命名为Duration Time,可选择删除原Interval Time列

步骤2:按时长计算排名

使用Power Query的排名函数,按Duration Time升序(时间越短排名越高)生成竞技式排名:

在高级编辑器的转换步骤后添加以下代码(注意替换#"重命名的列"为你实际的上一步骤名称):

= Table.AddRankColumn(#"重命名的列", "Rank", {"Duration Time", Order.Ascending}, [RankKind = RankKind.Competition])

注:RankKind.Competition表示同分同名次、后续名次顺延,符合常规比赛排名逻辑。

步骤3:计算与第一名的时间差距

先提取第一名的最短时长,再计算每行与该时长的绝对差值:

  1. 添加自定义列,输入以下公式(替换#"添加的排名"为实际步骤名称):
= let
    firstDuration = List.Min(#"添加的排名"[Duration Time])
in
    Duration.Abs([Duration Time] - firstDuration)
  1. 将新列命名为Time Gap,该列将显示当前运动员与第一名的时间差(正数表示比第一名慢)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:35:02