求EXCEL公式,效果是A列和B列数据一起匹配C列数据,删除重复项得到的结果返回D列,谢谢

如题所述

D1=IF(SMALL(IF(IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,100,$A$1:$B$6)>0,IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,4^8,$A$1:$B$6)),ROW(A1))<MAX($A$1:$B$6),SMALL(IF(IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,100,$A$1:$B$6)>0,IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,4^8,$A$1:$B$6)),ROW(A1)),"")数组公式向下复制

数组公式,公式输完后,光标放在公式编辑栏同时按下CTRL+SHIFT+回车键,使数组公式生效

追问

谢谢,大神,有用,这个公式太长了,看不懂,能解释下吗?

追答

我只说一下思路
IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,100,$A$1:$B$6)
用AB列的数据在C列中查找,找到的返回100,找不到返回AB列的值;
IF(IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,100,$A$1:$B$6)>0,IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,4^8,$A$1:$B$6)),
上述形成的数组(AB列在C列中没有的数值和多个100)剔除0(没注意,4^8和100统一用一个就可以了);
SMALL(IF(IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,100,$A$1:$B$6)>0,IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,4^8,$A$1:$B$6)),ROW(A1))
上述数组依次提取第1个最小值、第2个最小值……;
IF(SMALL(IF(IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,100,$A$1:$B$6)>0,IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,4^8,$A$1:$B$6)),ROW(A1))0,100,$A$1:$B$6)>0,IF(COUNTIF($C$1:$C$6,$A$1:$B$6)>0,4^8,$A$1:$B$6)),ROW(A1)),"")
提取出来的数值小于等于AB列的最大值,就等于这个值,否则等于空。
用到的五个函数SMALL、IF、COUNTIF、ROW、MAX,叙述起来篇幅太长,自己去网上查阅学习吧。

温馨提示:答案为网友推荐,仅供参考
相似回答