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

Power Query 基于双条件分组实现订单维度数据统计的操作方法

Power Query 实现表格转换操作步骤
  • 第一步:将原始数据加载到Power Query编辑器,选中不需要的XX、YY、ZZ三列,右键选择「删除列」,仅保留Order Nr、Key、Status三列即可。
  • 第二步:执行分组聚合操作,按Order Nr维度计算三个指标:
    1. 点击顶部「转换」选项卡下的「分组依据」按钮
    2. 分组依据字段选择Order Nr
    3. 依次添加三个自定义聚合列:
      • 列名:ABC,操作选「自定义」,聚合公式输入:List.AnyTrue(List.Transform([Key], each Text.StartsWith(_, "ABC")))
      • 列名:XYZ,操作选「自定义」,聚合公式输入:List.AnyTrue(List.Transform([Key], each Text.StartsWith(_, "XYZ")))
      • 列名:Active,操作选「自定义」,聚合公式输入:List.AnyTrue(List.Transform([Status], each _ = "B" or _ = "C"))
  • 第三步(可选):如果需要输出大写的TRUE/FALSE文本格式,可选中三个布尔列,先修改列类型为「文本」,再使用「格式」-「大写」功能统一转换格式。

完整M代码示例

let
    // 此处的源替换为你自己的数据源引用即可
    源 = Excel.CurrentWorkbook(){[Name="原始表"]}[Content],
    // 删除无关列
    删除无用列 = Table.RemoveColumns(源,{"XX", "YY", "ZZ"}),
    // 按订单号分组计算所有指标
    分组聚合 = Table.Group(删除无用列, {"Order Nr"}, {
        {"ABC", each List.AnyTrue(List.Transform([Key], (x)=>Text.StartsWith(x, "ABC"))), type logical},
        {"XYZ", each List.AnyTrue(List.Transform([Key], (x)=>Text.StartsWith(x, "XYZ"))), type logical},
        {"Active", each List.AnyTrue(List.Transform([Status], (x)=>x="B" or x="C")), type logical}
    })
in
    分组聚合

注:你给出的示例结果中Order Nr=100的Active值为FALSE,和规则描述存在冲突:按规则100存在Status为B、C的记录,实际计算结果会返回TRUE,可根据实际业务需求调整判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 21:09:01