PowerQuery全外连接两表出现多余行问题求助(3列匹配)
解决Power Query全外连接出现多余行的问题
核心排查与修复步骤
统一连接列的数据类型和格式
这是最常见的问题根源:比如Date列在IST和SOLL表中一个是日期类型、一个是文本类型;或者Block/Day列存在隐形空格、大小写差异(比如"Block01"和"block01")。
直接按以下操作处理:- 分别打开两个源表,选中
CC、Date、Block/Day三列 - 在「转换」标签中统一设置数据类型(比如
Date设为日期型,另外两列设为文本型) - 对文本列执行「清除空格」操作,去除前后隐形空格
- 分别打开两个源表,选中
换用直接全外连接函数,规避嵌套展开的问题
你当前使用的Table.NestedJoin是嵌套连接,后续展开嵌套表时容易出现重复行。可以换成Table.FullOuterJoin直接生成扁平表:= Table.FullOuterJoin( #"SOLL", {"CC", "Date", "Block/Day"}, #"IST", {"CC", "Date", "Block/Day"}, JoinKind.FullOuter )检查源表本身的重复行
如果IST或SOLL表中,CC+Date+Block/Day的组合已经存在重复行,全外连接后会产生笛卡尔积,导致多余行。先给两个源表执行「删除重复项」操作,选中这三列作为判断依据即可。规范嵌套表的展开操作
如果一定要使用嵌套连接,展开时注意:点击嵌套列右侧的展开按钮,选择「仅加载选定列」,避免重复选择列或多次执行展开操作。
验证方式
修改完成后,对比结果表行数是否等于「IST表行数 + SOLL表行数 - 两表匹配行数」,符合这个数值则说明没有多余行问题。
内容的提问来源于stack exchange,提问作者M123
相关产品推荐
相关产品推荐

