基于Tonnage列值计算日期差的Power Query实现需求
Power Query 按名称分组计算有效日期区间天数(Tonnage>0)
操作步骤:
筛选Tonnage大于0的行
在Power Query编辑器中,选中Tonnage列,点击列标题旁的筛选按钮,选择「数字筛选」>「大于」,输入0确认。按名称分组并计算日期差
选中名称列,切换到「转换」选项卡,点击「分组依据」:- 分组依据选择「名称」
- 新列名设为
天数差(可自定义) - 操作选择「自定义」,输入公式:
Duration.Days(List.Max([Date]) - List.Min([Date]))
点击确定即可得到每组的日期区间天数。
完整M代码示例
假设你的数据源来自Excel工作表中的「表1」,包含名称、Date、Tonnage三列,完整代码如下:
let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 筛选有效记录 = Table.SelectRows(源, each [Tonnage] > 0), 分组计算天数 = Table.Group(筛选有效记录, {"名称"}, {{"天数差", each Duration.Days(List.Max([Date]) - List.Min([Date])), Int64.Type}}) in 分组计算天数
说明
- 筛选步骤会先剔除所有
Tonnage≤0的无效行,只保留符合要求的记录 - 分组时通过
List.Max([Date])和List.Min([Date])提取每组的最大、最小日期,再用Duration.Days计算两者的天数差 - 针对示例中的K701,筛选后取其所有
Tonnage>0行的2022-09-12(最小日期)和2022-09-30(最大日期),计算得到天数为18
内容的提问来源于stack exchange,提问作者Michael Rezaei
相关产品推荐
相关产品推荐

