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

Power Query Excel如何基于同列其他行值更新对应行数据

Power Query 实现分组填充列方案

操作步骤

  • 第一步:从SQL Server导入原始数据到Power Query编辑器,确认Visit Date、Rep、Chestionar、Customer、Brand、PLANOGRAME Type 1、PLANOGRAME Type 2、POZITIONARE字段完整加载。
  • 第二步:按要求维度分组:点击顶部「转换」选项卡 → 选择「分组依据」→ 切换到「高级」模式,依次添加4个分组列:Visit Date、Rep、Chestionar、Customer;新列名输入组内明细,操作选择「所有行」,点击确定生成分组结果。
  • 第三步:添加自定义列处理每组数据,自定义列公式如下:
let
  currentGroup = [组内明细],
  // 提取同组内Planograme Type 1对应的值
  p1Val = Table.SelectRows(currentGroup, each [Brand] = "Planograme Type 1"){0}[PLANOGRAME Type 1]?,
  // 提取同组内Planograme Type 2对应的值
  p2Val = Table.SelectRows(currentGroup, each [Brand] = "Planograme Type 2"){0}[PLANOGRAME Type 2]?,
  // 提取同组内非两类Planograme对应的POZITIONARE值
  pozVal = Table.SelectRows(currentGroup, each not List.Contains({"Planograme Type 1", "Planograme Type 2"}, [Brand])){0}[POZITIONARE]?,
  // 给组内所有行批量赋值
  updatedGroup = Table.AddColumn(currentGroup, "PLANOGRAME Type 1_新", each p1Val),
  updatedGroup = Table.AddColumn(updatedGroup, "PLANOGRAME Type 2_新", each p2Val),
  updatedGroup = Table.AddColumn(updatedGroup, "POZITIONARE_新", each pozVal),
  // 容错处理空值,没有匹配值时保留原值
  updatedGroup = Table.ReplaceValue(updatedGroup, null, each _, Replacer.ReplaceValue, {"PLANOGRAME Type 1_新", "PLANOGRAME Type 2_新", "POZITIONARE_新"})
in
  updatedGroup

公式末尾的?为容错符,避免分组内无匹配数据时抛出错误。

  • 第四步:删除原始的组内明细列,点击自定义列右上角的展开按钮,展开所有字段;删除原来的旧目标列,将带_新后缀的列重命名为原有列名即可得到预期结果。

性能优化提示

如果数据量较大导致加载慢,可在分组前先按四个分组字段做升序/降序排序,Power Query对排序后的数据分组会大幅提升计算效率,避免全表反复扫描。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 07:27:01