Power Query如何用条件Max语句新增对应Item Number和Movement Type的最大日期列
Power Query保留原行新增分组最大日期列实现方法
可以实现该需求,不需要通过改变原表结构的Group By操作,有两种常用实现方案:
方案1:直接添加自定义列(适合中小数据集)
直接在原表上添加自定义列,输入以下公式即可:
= List.Max(Table.SelectRows(#"Renamed Columns1", (x) => x[Item Number] = [Item Number] and x[#"Movement Type Name"] = [#"Movement Type Name"])[Date])
公式逻辑:逐行筛选出全表中与当前行Item Number、Movement Type Name一致的所有数据,再提取这些数据的Date列最大值作为当前行的计算值,所有原始行都会完整保留。
注意:公式中的步骤名
#"Renamed Columns1需要替换为你实际的上一步操作的步骤名,列名也要和你表内的实际列名完全匹配,带空格、特殊字符的列名需要用#""包裹。
方案2:分组后合并查询(适合大数据集,性能更优)
如果数据集行数较多,方案1逐行筛选的性能会比较差,可以用分组+合并的方式实现,执行效率更高:
- 第一步:先执行你原来的Group By操作,得到每个分组对应的最大日期表,步骤代码如下,可命名为
#"Grouped Max Date":= Table.Group(#"Renamed Columns1", {"Item Number", "Movement Type Name"}, {{"Max Date", each List.Max([Date]), type nullable date}}) - 第二步:回到原表
#"Renamed Columns1",执行合并查询操作,关联键选择Item Number和Movement Type Name两个字段,和刚才生成的#"Grouped Max Date"表做左外部关联 - 第三步:展开合并后的列,仅勾选
Max Date字段完成添加,所有原始行结构不会发生变化
内容的提问来源于stack exchange,提问作者Rondondoesitall
相关产品推荐
相关产品推荐

