如何在Power Query中计算相邻行时间间隔并生成结果表
在Power Query里算行间时间间隔,生成目标表的操作方法
假设你的原始表有个时间列(比如叫「时间」),按下面步骤来:
1. 添加索引列
在Power Query编辑器里,选中时间列,点「添加列」选项卡 → 「索引列」→ 选「从0开始」(从1开始也行,后面公式对应调整索引逻辑即可)。
2. 提取下一行的时间
点「添加列」→ 「自定义列」,输入公式:
= try #"添加的索引"{[索引]+1}[时间] otherwise null
把新列命名为「下一行时间」。用try...otherwise是为了处理最后一行没有下一行的情况,直接返回null即可。
3. 计算时间间隔
再添加一个自定义列,命名为「持续时间」,输入公式:
= Duration.From([下一行时间] - [时间])
这个公式会直接算出当前行与下一行的时间差,输出标准的持续时间格式(比如00:00:00、09:16:00)。
4. 整理成目标格式
- 筛选删除「持续时间」列为null的行(也就是最后一行,因为没有下一行就没有时间间隔)
- 只保留「时间」和「持续时间」两列
- 如果需要把持续时间改成
h:mm的简化格式,右键「持续时间」列 → 「更改类型」→ 「自定义」,输入格式字符串hh:mm;或者添加自定义列转换格式:
= Text.From(Duration.Hours([持续时间])) & ":" & Text.PadStart(Text.From(Duration.Minutes([持续时间])), 2, "0")
最终效果示例
整理完成后会得到你需要的表结构:
5/4/2020 0:00 -> 第一个事件的持续时间
5/5/2020 9:16 -> 第二个事件的持续时间
内容的提问来源于stack exchange,提问作者Rox
相关产品推荐
相关产品推荐

