Power BI:匹配列值合并行操作无效,求正确实现方法
Power BI 按指定列匹配合并行解决方案
原始数据
Commodity | Region | Unit | 2007 | 2008 | 2009 Corn | US | $ | 10 | null | null Corn | US | $ | null | 20 | null Corn | US | $ | null | null | 30
期望结果
Commodity | Region | Unit | 2007 | 2008 | 2009 Corn | US | $ | 10 | 20 | 30
问题分析
你之前的操作方向是对的,但Pivot步骤未设置正确的聚合逻辑,导致Power BI无法自动合并非空值。默认情况下如果不指定聚合方式,工具无法识别需要提取每个分组下的非空值,最终导致结果无变化。
正确操作步骤
- 打开Power Query编辑器,导入目标数据表。
- 选中
Commodity、Region、Unit三列,右键选择 Unpivot Other Columns。此时会生成Attribute(存储年份)和Value(对应年份数值)两列,原始null值会被自动过滤,最终得到3行有效数据。 - 选中新生成的
Attribute列,点击顶部菜单栏 Transform 选项卡中的 Pivot Column。 - 在弹出的设置窗口中:
- Values Column 选择
Value - 展开 Advanced options,将 Aggregate value function 设置为
First Non-Blank(或Sum,因每个年份仅对应一个非空值,两种方式结果一致)
- Values Column 选择
- 点击确定,即可得到合并后的目标表格。
替代方案(直接分组)
如果Unpivot+Pivot的方式仍有问题,可直接使用分组功能:
- 在Power Query编辑器中,选中
Commodity、Region、Unit三列。 - 点击 Home 选项卡中的 Group By。
- 在分组设置窗口中:
- 保留已选中的三列作为分组依据
- 点击 Add aggregation,依次为每个年份列添加规则:
- 新列名填
2007,操作选First Non-Blank,列选2007 - 重复上述操作,添加
2008、2009的聚合规则
- 新列名填
- 点击确定,直接生成合并后的行。
内容的提问来源于stack exchange,提问作者Anon
相关产品推荐
相关产品推荐

