EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右

图片[1]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

在Excel的单元格区域处理数据时,我们经常用到一个叫做VLOOKUP的匹配函数,特定情况下非常好用吗,但也有非常明显的短板和不足,那么来匹配表与表之间的数据,有没有一个类似的功能呢?

答案肯定是有的,这就是在Power Query环境下的合并查询功能,可以将其称之为“超级VLOOKUP”,这个称呼,可以说是对Power Query合并查询功能最贴切、最形象、也是最经典的入门级描述

图片[2]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

如上图所示,当我们决定对两个表进行合并查询时,会让我们选择合并查询的6大种类,我称之为6大神器,今天我们就把这6大神器进行一一的讲解。

我们来设计两个非常简单、但足以说明问题的Excel表样:一个“员工表”和一个“项目分配表”

核心业务场景:公司里有一份完整的员工名单,同时还有一份项目分配记录,我们想通过分析这两张表,了解员工的参与项目情况。


准备两个Excel表样

如下图,创建两个Excel文件,或者在一个Excel文件的两个工作表中,创建以下数据。强烈建议将它们分别“格式化为表格”,即不要以单元格区域的形式在Excel表中列示,并命名为Employees和Projects。

表1: 员工表 (Employees) — Sheet A

这张表是公司的员工花名册,包含了所有在职员工。

EmployeeIDEmployeeNameDepartment
E01张三销售部
E02李四研发部
E03王五销售部
E04赵六人事部

表2: 项目分配表 (Projects) — Sheet B

这张表记录了当前正在进行的几个项目,以及被分配到项目上的员工。

ProjectNameAssignedEmployeeID
项目AE01
项目AE03
项目BE02
项目CE05

关键信息

  • **赵六(E04)**在员工表里,但没有被分配任何项目。
  • E05这个员工ID被分配到了项目C,但他/她并不在我们的员工表里(可能是一位外部顾问或已离职员工)。

在Power Query中演示“六大神器”

现在,我们将这两个表加载到Power Query中,然后以Employees表为主表,Projects表为要合并的表,来演示六种不同的连接类型。匹配的键是[EmployeeID][AssignedEmployeeID]

1.左外部连接 — “以我为主,匹配你”

  • 业务问题:“我想看到所有员工的列表,并在他们旁边列出他们参与的项目(如果没有,就为空)。”
  • 这正是在Excel单元格数据处理中的VLOOKUP能做到的。
图片[3]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

结果:

EmployeeIDEmployeeNameDepartmentProjectName
E01张三销售部项目A
E02李四研发部项目B
E03王五销售部项目A
E04赵六人事部null

2.右外部连接 — “以你为主,匹配我”

  • 业务问题:“我想看到所有被分配了项目的记录,并找出对应的员工信息(如果员工不存在,也要保留这条项目记录)。”
图片[4]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

结果:

ProjectNameAssignedEmployeeIDEmployeeNameDepartment
项目AE01张三销售部
项目AE03王五销售部
项目BE02李四研发部
项目CE05nullnull

3.完全外部连接 — “宁可错杀,不可放过”

  • 业务问题:“我想看到所有的员工和所有的项目分配记录,无论它们是否能匹配上,给我一个最全的大列表。”
图片[5]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

结果:

EmployeeIDEmployeeNameDepartmentProjectNameAssignedEmployeeID
E01张三销售部项目AE01
E02李四研发部项目BE02
E03王五销售部项目AE03
E04赵六人事部nullnull
nullnullnull项目CE05

4.内部连接 — “求同存异,只要交集”

  • 业务问题:“我只想看那些既在员工列表里,又确实被分配了项目的员工信息。”
图片[6]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

结果:

EmployeeIDEmployeeNameDepartmentProjectName
E01张三销售部项目A
E02李四研发部项目B
E03王五销售部项目A

5.反左连接 — “找出我方‘单身狗’”

  • 业务问题:“请帮我找出所有在职的员工中,还没有被分配任何项目的人员名单。”
  • 这是VLOOKUP绝对做不到的神器!
图片[7]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

结果:

EmployeeIDEmployeeNameDepartment
E04赵六人事部

6.反右连接 — “找出对方‘神秘人’”

  • 业务问题:“请帮我检查一下项目分配表,看看有没有哪些被分配的员工ID是无效的(即在我们的员工花名册里根本不存在)。”
  • 这同样是VLOOKUP做不到的数据核对利器!
图片[8]-EP008 PQ合并查询的6大连接神器详细解读:左外、右外、完全外、内部、反左、反右-小微之家 | 汪斌带你开公司 | 老汪洞察

结果:

ProjectNameAssignedEmployeeID
项目CE05

通过这两个简单的表样,我们可以清晰地看到,六种不同的连接类型,就像六把功能各异的“瑞士军刀”,能够精确地回答各种复杂的业务问题,实现从简单的数据匹配到深度的数据核对与审计。

© 版权声明
THE END
喜欢就支持一下吧
点赞79 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容