Excel 365 Power Query中Table.Group按两列取最小及多级分组问题
双维度最小行取值方案
原有Table.Group逻辑问题:按Package Name作为分组键会单独计算每个Package对应的最小Units Required和Assessment,不符合全局筛选最小行的需求,可参考以下两种实现:
- 方案1:排序取首行(逻辑更直观,维护成本低)
let 源 = #"Previous Step Name", // 优先按Units Required升序,次按Assessment升序 双维度排序 = Table.Sort(源,{{"Units Required", Order.Ascending}, {"Assessment", Order.Ascending}}), 取最小行 = Table.First(双维度排序), 输出Package = 取最小行[Package Name] in 输出Package
- 方案2:
Table.Group实现
let 源 = #"Previous Step Name", // 空分组键将全表归为同一组,组内排序取首行 全表分组 = Table.Group(源, {}, {{"最小行", each Table.First(Table.Sort(_, {{"Units Required", Order.Ascending}, {"Assessment", Order.Ascending}}))}}), 提取Package = 全表分组{0}[最小行][Package Name] in 提取Package
两层嵌套分组实现
单个Table.Group可以实现两层分组需求,两种场景写法如下:
- 场景1:按
Package Name+Column X组合分组,每个组合对应一个嵌套表
let 源 = #"Previous Step Name", 两层分组 = Table.Group( 源, {"Package Name", "Column X"}, {{"分组明细", each _}} ) in 两层分组
- 场景2:按
Package Name一级分组,每个Package下嵌套所有Column X的二级分组结果
let 源 = #"Previous Step Name", 嵌套分组 = Table.Group( 源, {"Package Name"}, {{"Column X子分组", each Table.Group(_, {"Column X"}, {{"子组明细", each _}})}} ) in 嵌套分组
内容的提问来源于stack exchange,提问作者The Frog
相关产品推荐
相关产品推荐

