首页 今日快讯文章正文

都是查找,实在分不清FIND和SEARCH还可以用REGEXTEST

今日快讯 2025年09月29日 13:51 0 aa

FIND和SEARCH这两个连参数都一样的函数,什么时候该用哪个?

=FIND(find_text,within_text,start_num)=SEARCH(find_text,within_text,start_num)

搞清楚二者的相同之处和不同之处自然就能量材而用。

相同之处

FIND和SEARCH的基本工作原理都是在字符串中查找指定字符并返回起始位置。

以下两个公式都返回”CH”在字符串中的起始位置11:

=FIND("CH","FIND还是SEARCH?")=SEARCH("CH","FIND还是SEARCH?")

不同之处

  • FIND要区分大小写,SEARCH不区分大小写。
=FIND("ch","FIND还是SEARCH?")

找不到”ch”报错,返回错误值。

都是查找,实在分不清FIND和SEARCH还可以用REGEXTEST

而SEARCH没有大小写的区别,ch和CH是一回事儿:

=SEARCH("ch","FIND还是SEARCH?")
都是查找,实在分不清FIND和SEARCH还可以用REGEXTEST

  • FIND不支持通配符,SEARCH支持通配符。
=SEARCH("S*H","FIND还是SEARCH?")
都是查找,实在分不清FIND和SEARCH还可以用REGEXTEST

这样就很明显了,需要区分大小写的场合只能用FIND,需要用到通配符的场合只能用SEARCH,其他场合任选。

扩展

FIND和SEARCH属于文本类函数,通常用来解决关键字问题,搭配ISNUMBER来判断是否包含指定关键字是十分广泛的应用。

如下案例中要提取“大盒”数据,SEARCH(或FIND)+ISNUMBER组合判断是否包含关键字,返回数组作为FILTER的第二参数:

=FILTER(A2:B7,ISNUMBER(SEARCH("大盒",A2:A7)))
都是查找,实在分不清FIND和SEARCH还可以用REGEXTEST

在高版本Excel中其实有一个更好的解决方法,那就是正则函数REGEXTEST。把关键字设置为第二参数判断是否包含该关键字:

=REGEXTEST(A2:A7,"大盒")
都是查找,实在分不清FIND和SEARCH还可以用REGEXTEST

再作为FILTER的第二参数提取数据:

=FILTER(A2:B7,REGEXTEST(A2:A7,"大盒"))
都是查找,实在分不清FIND和SEARCH还可以用REGEXTEST

无论是否区分大小写,是否用到通配符,正则函数都能轻松应对。

不久的将来REGEXTEST将逐步取代FIND和SEARCH的大部分应用,毫无悬念。

发表评论

长征号 Copyright © 2013-2024 长征号. All Rights Reserved.  sitemap