Power BI中如何使用双主键或组合主键合并查询?
如何在Power BI中使用单个或组合主键合并查询?
刚好我经常处理这类场景,给你详细说下操作方法,不管是单个主键还是多列组合的主键,Power Query都能轻松搞定:
通用操作步骤(适用于任意多列组合主键)
- 打开Power Query编辑器:在Power BI Desktop主页,点击「转换数据」进入编辑器界面。
- 选择基础表并启动合并:选中你要作为基础的表(比如表A),点击主页选项卡的「合并查询」——如果不想修改原表,建议选「合并查询作为新查询」,这样原表还能保留。
- 选择目标表:在弹出的合并对话框里,从下拉列表中选要合并的表(比如表B)。
- 选择组合主键列:按住
Ctrl键,依次点击基础表中的主键列(比如先点year,再点cost center);然后在目标表的列列表里,同样按住Ctrl键按相同顺序点击对应的主键列。 - 选择合并类型:根据需求选合适的类型,比如:
- 左外部:保留基础表所有行,匹配目标表的对应数据,没匹配到的显示空值
- 内部:只保留两边都有匹配主键的行
- 全外部:保留两边所有行,没匹配的显示空值
- 展开合并结果:点击新增列右侧的展开箭头,取消勾选重复的主键列(比如表B的
year和cost center),只选你需要的列(比如col x、col y、col z),确认即可。
针对你给出的具体示例(表A & 表B,组合主键为year+cost center)
我再给你走一遍更针对性的流程:
- 进入Power Query编辑器后,在左侧导航栏找到表A,右键点击它 → 「合并查询」→「合并查询作为新查询」。
- 在合并窗口的右表下拉框里选中表B。
- 选匹配列:先在表A的列里按住
Ctrl点year,再点cost center;切换到表B的列,同样按住Ctrl先点year,再点cost center——这时候窗口底部会显示匹配行数的预览,能快速确认是否选对了。 - 合并类型选「左外部」(如果你想保留表A的所有数据),或者根据你的需求选其他类型。
- 点击确定后,新查询里会多一列默认叫「表B」,点击这列右边的小箭头,展开时去掉
year和cost center的勾选(避免重复),只勾选col x、col y、col z,然后点击确定。
这样就完成了合并,得到的表就是表A的所有列加上表B中对应年份和成本中心的相关列啦。
小提示:选组合列的时候一定要注意顺序,两边的主键列选择顺序要一致,不然会匹配错误哦!
内容的提问来源于stack exchange,提问作者vikram sah




