Excel筛选功能大家都用过,精准筛选只需要在筛选框输入查找的内容即可。但是如果需要筛选多个内容呢?如下图这种情况,需要在A列筛选出包含"苏宁"、"国美"、"club"字段的数据。
这个问题,我们可以用三种方法去解决,小伙伴们挑选适合自己的一种方法记住即可~
高级筛选法不用函数公式,Excel自带高级筛选功能,只不过这里并不是精准匹配,需要对筛选条件进行处理。
在D列对筛选条件进行处理,将筛选内容首尾加上星号(*),星号(*)代表零个、单个或多个字符,这样就可以精准的匹配出单元格包括"苏宁"、"国美"、"club"的数据。
做好辅助数据之后,依次点击【数据】—【高级】,在弹出来的高级筛选框中,【列表区域】选择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函数,如果count结果为1,返回A2单元格内容,如果count结果为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不能返回正确的结果;
为了解决升序问题,我们引入了LOOKUP(0,0/条件,返回区域)来解决这一问题,参数二中的"条件"成立返回true,不成立返回false,0/true返回0,0/false返回#DIV/0!,说明满足条件返回0,不满足返回#DIV/0!,这时只要用一个大于等于0的数值查找就可以返回正确结果了,因为lookup默认忽略错误值,相当于排序了;
其中条件可以是多条件数组,参数本身支持,所以这里不用像数组函数那样同时按三个键输入。
小结三种方法中,高级筛选法更容易掌握一点,lookup向量法看起来要复杂一点,但这正是lookup的精髓所在,它支持逆向查找,功能比vlookup丰富,感兴趣的小伙伴可以学习下。
以上就是多条件筛选的三种小技巧,你都学会了嘛,如果觉得有用,欢迎关注我,每天分享数据小技巧!