三军可夺帅也,匹夫不可夺志也

powerquery有数值型吗(PowerQuery合并查询中的左反)(1)

在学习 PQ 时,你也许也遇到这样的疑问,在通过匹配字段合并两个表时,连接种类中左反、右反是指什么?该如何选?它们分别代表什么意思?

powerquery有数值型吗(PowerQuery合并查询中的左反)(2)

我们可以结合人力资源中人员异动分析来理解以上几种表格合并的类型。

模拟数据如下,表中两列分别记录了某公司2020年末及2021年的在职员工名册。

powerquery有数值型吗(PowerQuery合并查询中的左反)(3)

在分析两个年度之间人员异动情况时,常常需要找出 2021年离职员工、2021年入职员工、两年都未变动的员工。以下就通过几个问题来讲解 PQ 的合并查询,帮你理解这几种合并类型的异同点。

将数据导入 PQ 中,通过鼠标右键复制一个查询。

powerquery有数值型吗(PowerQuery合并查询中的左反)(4)

接下来的操作都是基于这两个一样的员工数据表,同时为了保留在册员工的原表,我们在合并时,都选择合并为新查询。

powerquery有数值型吗(PowerQuery合并查询中的左反)(5)

2021年离职员工

2021年离职员工,也就是说存在于2020年的名单内,但不存在与2021年的员工。

powerquery有数值型吗(PowerQuery合并查询中的左反)(6)

如果我们第一个在册员工表选择的是2020年在册员工列,第二个表选择的是2021年在册员工列进行匹配的话,那么此时我们需要选择的联接类型是「左反」。

这里的左、右其实可以理解为上、下或者是第一个表、第二个表。

第一个表

第二个表

左反是指,仅在第一个表中存在的记录,也就是仅仅在2020年才有的员工,2021年中并不存在,那么也就是在2021年离职的员工。

查询结果为:

powerquery有数值型吗(PowerQuery合并查询中的左反)(7)

2021年新入职员工

这个问题的分析逻辑其实是一样的,2021年新入职的员工,也就是仅仅会出现在2021年的名单内的员工。同样可以用「左反」的联接类型来获取。只是我们在选择匹配列时,第一个表需要先选择2021年在册员工列,第二个表选择2020年在册员工。

powerquery有数值型吗(PowerQuery合并查询中的左反)(8)

当然如果我们选择列的顺序还是先选择2020年的话,那此时就可以用「右反」了 。

powerquery有数值型吗(PowerQuery合并查询中的左反)(9)

两年都未变动的员工

两年都没有变动的员工,就是两张表中都同时存在的员工。合并的类型为「内部」。只有两表中匹配的行才会出现在结果中。

powerquery有数值型吗(PowerQuery合并查询中的左反)(10)

,