正好最近的工作有遇到要在Excel中对比两列数据而进行筛选的问题,在网上找到以下资料,特记录下来研究学习。

excel201403131711

 

如上图,现在,我们的意图是:

①同时出现在A列和B列中的数据,相同的有几个?(两者皆有)

②A列中出现的数据但是在B列却没有的数据有几个?(A有B不有)

③B列中出现的数据但是在A列却没有的数据有几个?(B有A不有)

这相当于:

两者皆有=AB(AB表示A交B)
A有B不有=A - B
B有A不有=B - A

在Excel里,要用到两个函数,一个是if(),另一个是countif(),关于这两个函数的使用方法,本文不再阐述,请阁下自行在本站查阅相应文章。

countif()函数的作用是测试某一个元素(成员)是不是在某集合(列),如果其值大于0,在说明该元素属于某集合,否则不属于。if()的作用是根据countif()测试的结果来赋予某一单元格的值。具体公式如下:

在单元格C2输入:=IF(COUNTIF(B$2:B$6,A2),A2,"")

说明:为了方便拖拉填充,需要把范围固定,即在数字前面加一个“$”符号,如:B$2:B$6。B$2:B$6表示一个范围,相当于集合B。

COUNTIF(B$2:B$6,A2)的意思就是在范围B$2:B$6里统计单元格A2的值出现的次数,如此,语句IF(COUNTIF(B$2:B$6,A2),A2,"")就表示,如果统计次数大于0则单元格C2的值等于A2,否则就等于""(即空)。以下公式类似,不再阐述。

在单元格D2输入:=IF(COUNTIF(B$2:B$6,A2),"",A2)

在单元格E2输入:=IF(COUNTIF(A$2:A$6,B2),"",B2)

注意,其中C、D两列只要填充到11就行了,因为这两列都是拿A列的元素进行测试,而A列的元素只到A11。同理E列就要填充到12。另外还要注意范围的选取,不要搞错了。

输完以上公式并且填充完,结果如下:

excel201403131712

Last modification:August 30th, 2019 at 04:33 pm