Power Query基于门店位置新增列:仅当相邻单元格有非空总额时
Power Query 新增地点列实现方案
核心思路
先识别包含地点的行,再把地点名称向下填充到对应品类的行,最后过滤掉原始的地点汇总行。
具体步骤
假设导入数据后,两列默认名为Column1和Column2,按以下操作:
添加自定义列标记地点行
添加一列判断当前行是否为地点行,M代码如下:= Table.AddColumn(源, "地点标记", each if List.Contains({"Dallas", "Seattle", "New York", "DC", "Des Moines"}, Text.Trim([Column1])) and [Column2] <> null then Text.Trim([Column1]) else null)用
Text.Trim处理地点名称前后的空格,确保匹配准确。向下填充地点列
把"地点标记"列的空值替换为上一行的地点名称,M代码:= Table.FillDown(前一步结果, {"地点标记"})过滤掉原始地点汇总行
保留Column1不在地点列表里的行,只保留品类数据:= Table.SelectRows(前一步结果, each not List.Contains({"Dallas", "Seattle", "New York", "DC", "Des Moines"}, Text.Trim([Column1])))整理列格式(可选)
- 把
Column2的金额格式从带逗号的文本转成数值:= Table.TransformColumns(前一步结果, {{"Column2", each Value.ReplaceText(_, ",", ""), type number}}) - 可重命名列,比如把
Column1改成"品类",Column2改成"金额",地点标记改成"地点"。
- 把
最终效果
处理后的数据结构示例:
| 品类 | 金额 | 地点 |
|---|---|---|
| Apples | 1000 | Dallas |
| Grapes | 2000 | Dallas |
| Bananas | 1000 | Dallas |
| Pears | 500 | Seattle |
内容的提问来源于stack exchange,提问作者Rich F
相关产品推荐
相关产品推荐

