excel进行多列条件筛选(excel多列筛选出满足条件的)
Excel的过滤功能大家都用过。如需精准过滤,只需在过滤框中输入搜索内容即可。但是如果您需要过滤多条内容怎么办?如下图所示,需要过滤掉A列中包含“苏宁”、“国美”、“俱乐部”字段的数据。
我们可以使用三种方法来解决这个问题。小伙伴们,选择适合自己的方法并记住吧~
高级筛选法
不需要函数公式。Excel自带高级过滤功能,但不是精确匹配,需要对过滤条件进行处理。
对D列的过滤条件进行处理,并在过滤内容的开头和结尾添加星号。星号代表零个、单个或多个字符,因此单元格包括“苏宁”、“国美”和“俱乐部”的数据。
准备好辅助数据后,依次点击-。在弹出的高级过滤框中,选择A1:A10,选择D1:D4(这里需要注意的是D1单元格的内容必须是A列的标题,即即,A1)的内容,点击确定按钮,数据已过滤完毕;
您还可以选择将筛选结果复制到其他位置。在弹出的高级过滤框中选择,并在选项框中选择一个单元格。
数组公式法
在B2单元格中输入[=IF(COUNT(FIND($C$2:$C$4,A2)),A2,'')],同时按[Ctrl]+[Shift]+[Enter]输入数组公式,公式会下拉,完成匹配。
公式解释:
FIND($C$2:$C$4,A2):find函数返回一个字符串在另一个字符串中出现的起始位置。如果找到,则返回一个数字。如果未找到,则错误值“#VALUE!”被退回;
COUNT(FIND($C$2:$C$4,A2)),count计数函数,参数为find函数的结果,如果找到,count(一个数字)返回1,如果找到,count(#VALUE!)返回0;
最后,使用if函数。如果计数结果为1,则返回A2单元格的内容。如果计数结果为0,则返回空值。
之所以需要同时按下[Ctrl]+[Shift]+[Enter]键,是为了将公式变成数组公式。通常find函数的第一个参数是一个字符串,但这里是一个数组$C$2:$C$4,所以需要将公式改为数组公式才能得到正确的计算结果。
lookup向量法
在B2单元格中输入[=LOOKUP(0,0/FIND($C$2:$C$4,A2),$C$2:$C$4)],按照公式,删除#N/A值,剩余的结果就是搜索内容。
查找向量公式:=LOOKUP(查找值,查找区域,返回区域);
第二个参数“查找区域”中的数据必须按升序排列,并且第三个参数区域的大小必须与第二个参数区域的大小一致,否则函数LOOKUP无法返回正确的结果;
为了解决升序问题,我们引入了LOOKUP(0,0/条件,返回区域)来解决这个问题。参数二中的'条件'为真则返回true,不为true则返回false,0/true返回0,0/false返回#DIV/0!表示满足条件,返回0。如果不满足条件,#DIV/0!被返回。这时用大于等于0的值进行查找就可以返回正确的结果,因为lookup默认会忽略错误值,相当于排序Already;
条件可以是多条件数组,参数本身也支持,所以不需要像数组功能一样同时按三个键。
小结
三种方法中,高级筛选法更容易掌握,而查找向量法则显得复杂一些,但这就是查找的本质。支持反向搜索,功能比vlookup更多。有兴趣的朋友可以研究一下。
以上是多条件过滤的三个技巧。你已经全部学会了。如果觉得有用,请关注我,每天分享数据小技巧!