如何在EXCEL上数据碰撞
EXCEL中提取出两列相同数据的方法:
如图,在C1单元格输入公式:=INDEX(A:A,SMALL(IF(COUNTIF($B$1:$B$10,$A$1:$A$10),ROW($A$1:$A$10),4^8),ROW(1:1))),这是数组公式,即同时按Ctrl+Shift+Enter结束公式编辑,会自动生成一对{},公式的意思,是当B列中含有A列中的数据时,返回行号,然后再用SMALL函数取相应小的行号,最后用INDEX函数返回A列中所取行号的值;
下拉填充会得到所有相同数据,但是会发现最后没有的数据会自动生成0,这是因为上面的公式中,相同数据返回行号,而不相同的数据返回的是4^8,也就是65536,当所有的相同数据都提取出来后,接下来用SMALL函数取出的就是65536,返回的也就是A65536单元格的值,一般表格用不到这么多行,这个单元格的值正常是空值,而引用空单元所返回的值不作限定,都是返回0的;
因此,将上面的公式,加个“&""”,使其结果转为文本格式,就不会出现0值了:=INDEX(A:A,SMALL(IF(COUNTIF($B$1:$B$10,$A$1:$A$10),ROW($A$1:$A$10),4^8),ROW(1:1)))&""。