如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

不通过编程,实现 Excel 数据的 Outer Join 合并。总体思路是先从两块数据中找出具备相同内容的列作为 Key 列,然后把两块数据的 Key 列内容纵向串接在一起,找出重复值并删除相应的行,既得到 Outer Join 结果。

 

示例问题

一组学生,有的考了地理、有的考了生物,现在要将两者合并成一张成绩表。在数据行数非常多的时候,不可能用人工观察的方式来进行合并,必须借助自动或半自动的方法。

原始数据:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?  如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

期望得到的结果:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

 

第一步:串接 Key 列

选择两块数据都有的“学号”作为 Key 列。将第一块数据的 Key 值复制到第二块,将第二块数据的 Key 值复制到第一块。注:表格中文字颜色仅为示意。得到以下结果:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?  如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

 

第二步:找出重复行

对“生物”这张表,先按“学号”排序,得到:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

然后,添加一个新列“X",编写公式“=IF(A2=A1,"X","")”,并向下复制到“X”列的每个单元格。该公式可以将上下 Key 值相同的行标记出来(标记为“X”),如下图:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

然后,将整个“X”列通过“粘贴为数值”复制成一个新“X”列,删掉原来的“X”列。这样做的目的是在下面重新排序之后,X 标记不会因为调整了顺序而发生变化。

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

按“X”列倒序排序,并删除所有被标记为“X”的行:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

然后把“X”列也删掉,最终得到新的“生物”表:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

通过同样的方法,得到新的“地理”表:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

 

第三步:合并数据

将两表的数据横向并置,如下图:

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

删除中间的“学号”列,就得到想要的结果了。

如何在 Excel 里将两部分数据进行横向合并(即 Outer Join)?

 

 

 

上一篇:Java Day1


下一篇:break和continue的区别 计时器