模糊匹配,可以根据多个条件进行模糊匹配,filter函数可以匹配其他函数进行实现,比如下面这个公式,假设你在A列中有公司名称,在B列有其他信息,你想要找出包含“丽景”的所有公司名称和对应的信息。
=FILTER(A:B, ISNUMBER(SEARCH("丽景", A:A)))
这个公式会返回A列和B列中所有包含“丽景”的数据行
下面将这个公式分开解析一下
1、search函数的语法格式
SEARCH函数是Excel中常用的文本查找函数,它可以返回查找指定的文本字符在某个字符串中的位置。它的语法结构是=SEARCH(find_text,within_text,[start_num])
=search(find_text,within_text,start_num)
=search(要查找的字符,字符所在的文本,从第几个字符开始查找)
第三个参数可以省略(默认从第一个开始查找)。
注意问题:
1、函数不区分大小写(这也是SEARCH函数和FIND函数的区别,find函数区分大小写)
2、可以使用通配符问号?和星号* 。 问号匹配任意单个字符;星号匹配任意一串字符。 如果要查找实际的问号或星号,请在字符前键入波形符 (~)(find函数不可以使用通配符)
3、如果第2参数中没有包含第1参数,则结果会返回错误值 #VALUE!。如果开始查找的位置小于等于0或者大于第2参数文本的字符个数,SEARCH的结果也会返回错误值 #VALUE!。
具体实例可以看这个贴子
Excel中SEARCH函数的使用方法_search excel-CSDN博客
2、ISNUMBER函数的公式:ISNUMBER(value)
该函数检测参数是否为数值型数字(纯数字),是则返回TRUE(真),否则返回FALSE(假)。
参数:value是判断对象,可为数字串,可为指定单元格的值,也可引用文本形式字符串,若value为纯数字串则返回TRUE,否则返回FALSE。
详细可以参考这篇文章
3、FILTER
filter(查询区域,条件,查不到结果返回的值)
注意条件是布尔表达式,这个条件为true,filter才返回结果,否则查不到结果。
一、单条件查询,返回多行多列记录
我们要查询“苹果”这个水果,使用公式:
=FILTER(A2:E14,D2:D14=“苹果”,"")
A2:E14为数据区域,D2:D14=H1orD2:D14=“苹果”,为查询条件,第三参数“”为查不到值返回空
二、多条件查询,或者(or)关系,返回多行多列
=FILTER(A2:E14,(D2:D14=H1)+(A2:A14=H2),"")
(D2:D14=H1)+(A2:A14=H2)这个参数是两个布尔表达式相加,但任意一个成立,结果就返回1,如果没有一个成立,结果返回0,所以用+连接。
三、多条件查询,并且(and)关系,返回多行多列
=FILTER(A2:E14,(D2:D14=H1)*(A2:A14=H2),"")
查询某个水果品种和地区的数据,(D2:D14=H1)*(A2:A14=H2),这是两个布尔表达式,如果都成立,结果为1,如果有一个不成立,结果返回0
四、查询一列在另外一列中不存在的数据
=FILTER(B2:B14,COUNTIF(D2:D6,B2:B14)=0,"")
COUNTIF(D2:D6,B2:B14)=0,是判断名单中不存在的,这样组合就查询到了未签到的人员。
五、在有重复值的列中提取唯一值
=UNIQUE(FILTER(D2:D14,A2:A14=G2,""))
先使用filter获取查询值,然后unique提取唯一的记录。
六、实现逆向查询
=FILTER(B2:B14,C2:C14=G2,"")
具体可以参考这个帖子