如何在Excel Power Query中透视列并将值合并至同一行?
问题描述
我有如下原始表格:
| Origin | Destination | Service | Supplier | Weight | Currency | Price |
|---|---|---|---|---|---|---|
| JFK | SYD | Lower | DHL | 0-45 | USD | 2.63 |
| JFK | SYD | Lower | DHL | 45-100 | USD | 2.63 |
| JFK | SYD | Lower | DHL | 100-200 | USD | 2.63 |
| EWR | FRA | Lower | DHL | 0-45 | USD | 2.50 |
| EWR | FRA | Lower | DHL | 45-100 | USD | 2.70 |
| EWR | FRA | Lower | DHL | 100-200 | USD | 2.80 |
希望转换成如下格式:
| Origin | Destination | Service | Supplier | Currency | 0-45 | 45-100 | 100-200 |
|---|---|---|---|---|---|---|---|
| JFK | SYD | Lower | DHL | USD | 2.63 | 2.63 | 2.63 |
| EWR | FRA | Lower | DHL | USD | 2.50 | 2.70 | 2.80 |
但使用Power Query的「透视列」功能后,得到了错误结果:
| Origin | Destination | Service | Supplier | Currency | 0-45 | 45-100 | 100-200 |
|---|---|---|---|---|---|---|---|
| JFK | SYD | Lower | DHL | USD | 2.63 | ||
| JFK | SYD | Lower | DHL | USD | 2.63 | ||
| JFK | SYD | Lower | DHL | USD | 2.63 | ||
| EWR | FRA | Lower | DHL | USD | 2.50 | ||
| EWR | FRA | Lower | DHL | USD | 2.70 | ||
| EWR | FRA | Lower | DHL | USD | 2.80 |
请问如何调整操作,使相同分组下的数值合并到同一行中?
解决步骤
在Power Query中透视列时,核心是正确设置分组依据和聚合规则,操作如下:
- 先选中
Origin、Destination、Service、Supplier、Currency这几列,作为分组依据的行标签 - 选中
Weight列,点击「转换」选项卡的透视列按钮 - 在弹出的对话框中:
- 值列选择
Price - 高级选项里的聚合函数不要选「不要聚合」,因为你需要把同一分组下的Price合并到一行,这里选「求和」「平均值」「最大值」都可以(因为每个分组对应唯一Price值,结果一致)
- 点击确定,就能得到目标格式的表格
- 值列选择
如果已经做了错误的透视操作,先撤销回原始数据状态,再按上述步骤重新操作即可。
另一种方法是提前分组:
- 点击「转换」选项卡的分组依据,设置分组列为
Origin、Destination、Service、Supplier、Currency,添加新列时操作选「所有行」,命名为Details - 展开
Details列,只保留Weight和Price两列 - 再对
Weight列执行透视操作,值列选Price,聚合函数选任意单一值聚合方式,同样能得到结果
内容的提问来源于stack exchange,提问作者Benjamin Roder
相关产品推荐
相关产品推荐

