在工作中,大家是否经常碰到,需要从两列数据中提取相同的或不同的内容?如果数据量较小,我们完全可以通过人工提取,如果数据量较大时,这样的方法,无疑是非常浪费时间的。那么有没有什么办法,可以批量进行提取呢?下面给大家分享一个怎么提取两列数据中相同或不同内容的方法
工具/原料
电脑
excel
案例数据源
1、下面就是本次案例的数据源,我们需要解决以下问题:1、提取两列数据相同的数据2、提取左侧列有,右侧列没有的数据3、提取左侧列没有,右侧列有的数据
2、看到以上需要解决的问题,其实我们心里应该会蹦出一个解决的思路,就是使用提取函数INDEX。INDEX函数的作用是,返回表格或数组中的元素值,此元素由行号和列号的索引值给定。当函数 INDEX 的第一个参数为数组常量时,使用数组形式。
1、提取两列都有的数据
1、通用公式如下:=INDEX(左侧列,SMALL(IF(觊皱筠桡COUNTIF(右侧列,左侧列数据区域)>0,ROW(左侧列数据区域),大于缍那傺蒙总数据的一个数字),ROW(A1)))&""由于上述公式为数组公式,无法直接使用,使用时需要以三键输入(Ctrl+Shift+Enter)。
2、那么对照数据源,则公式如下:=INDEX(B:B,SMALL(IF(COUNTIF(C:C,$B$3:$B$22)>0,ROW($B$3:$B$22),1000),ROW(A1)))&""
3、在E3单元格输入公式后,向下复制。
2、提取仅在左侧列的数据
1、通用公式如下:=INDEX(左侧列,SMALL(IF(觊皱筠桡COUNTIF(右侧列,左侧列数据区域)=0,ROW(左侧列数据区域),大于总数据的一个数字),ROW(A1)))&""由于上述公式为数组公式,无法直接使用,使用时需要以三键输入(Ctrl+Shift+Enter)。与第一个公式的差异在COUNTIF(右侧列,左侧列数据区域)=0处,在这里是等于0(=0)。
2、那么对照数据源,则公式如下:=INDEX(B:B,SMALL(IF(COUNTIF(C:C,$B$3:$B$22)=0,ROW($B$3:$B$22),1000),ROW(A1)))&""
3、在E3单元格输入该公式后,向下复制。
3、提取仅在右侧列的数据
1、通用公式如下:=INDEX(右侧列,SMALL(IF(觊皱筠桡COUNTIF(左侧列,右侧列数据区域)=0,ROW(右侧列数据区域),大于总数据的一个数字),ROW(A1)))&""由于上述公式为数组公式,无法直接使用,使用时需要以三键输入(Ctrl+Shift+Enter)。与第二个公式的差异是对应的左右列和区域相反。
2、那么对照数据源,则公式如下:=INDEX(C:C,SMALL(IF(COUNTIF(B:B,$C$3:$C$22)=0,ROW($C$3:$C$22),1000),ROW(A1)))&""
3、在E3单元格输入公式后,向下复制。