分享

Excel021-有模糊查找功能的函数SEARCH

 L罗乐 2017-06-24

▲本期分享技能请观看



上一次分享的FIND函数你学会怎么灵活运用了么?可惜FIND函数有自身的局限性,那就是无法支持通配符模糊查找,不用担心,今天就给大家介绍一个支持模糊查找的函数SEARCH。让我们看看SEARCH这个函数如何帮助我们解决日常生活中的难题。



首先来看看函数解析,3个参数:SEARCH(find_text,within_text,[start_num])


① find_text:要找什么?

② within_text:在哪找?

③ start_num:从哪开始找?


还有一个与SEARCH相似的函数SEARCHB,参数跟SEARCH相同,第1个参数是按字节查找。区别只有在查找内容有汉字的情况下才会显现。通常一个汉字代表两个字节,一个英文字母或者数字代表一个字节。


对于SEARCH 函数,以下关键的几点我们要了解:


① SEARCH和SEARCHB 支持通配符「?」,「*」的使用。

② 如果查找「?」,「*」本身,要在前面加个「~」。

③ SEARCH 和SEARCHB不区分大小写。



让我们通过实际案例来看看如何灵活使用SEARCH 函数吧。


案例1:判断电话号码是否是以189开头第7位为6末尾为1。



要求看似很复杂,如果用FIND函数真的很难实现,可是用SEARCH就可以轻而易举的完成。具体方法如下:


① 在J2单元格录入公式:=IF(ISERROR((SEARCH(''189???6???1'',I2))),''NO'',''YES'')

② 下拉填充公式。


公式解析:


① 「?」代表单个任意字符。我们按照要求,构建一个符合要求的电话号码「189???6???1」,这个号码以189开头,第7为是6,末尾是1。「?」要在英文输入法的状态下录入。


② SEARCH(''189???6???1'',I2)用来表示在I2单元格中查找我们构建的电话号码。如果能够查找到会显示1,如果查找不到,会显示#VALUE!。


③ IF(ISERROR((SEARCH(''189???6???1'',I2))),''NO'',''YES'')用来将错误值#VALUE!显示成NO,1显示成YES。


案例2:从所列地址中提取门牌号。



这个案例让很多小伙伴头疼不已,因为数字的长度和位置都是不确定的,我们用SEARCHB函数可以很简单的实现数字提取,快来看看怎么操作吧!具体操作如下:


① 在E2单元格录入公式:=MAX(IFERROR(--MIDB(A2,SEARCHB(''?'',A2),ROW($1:$5)),0))

② 下拉填充公式。


公式解析:


① SEARCHB(''?'',A2)用来表示在A2单元格中查找任意单字节。这种情况只能找到英文或者是数字,对于汉字会忽略,所以我们此处可以找到A2单元格中2的位置为第25个字节。


② ROW($1:$5)用来构建一个数组,结果为{1,2,3,4,5}作为MIDB函数的第三参数,用来表示提取文本长度为1个字节,2个字节……5个字节,由于门牌号基本不会超过5个数字,所以我们只构建了5个数组元素。


③ MIDB(A2,SEARCHB(''?'',A2),ROW($1:$5))用来提取地址中从第25个字节开始的长度为1个字节,2个字节……5个字节的文本字符串。结果如下:{''2'';''23'';''23 '';''23号'';''23号''}。


④ -- 符号用来将数字文本数字化,数字文本会显示成数字,文本会显示为#VALUE!。结果如下:{2;23;23;#VALUE!;#VALUE!}


⑤ IFERROR为容错函数,将#VALUE!转换成0。结果如下:{2;23;23;0;0}

⑥ MAX 用来求数组中的最大值。



今天的内容就分享到这里,非常感谢大家一直以来对布衣公子的关注和支持!如果您有任何PPT和Excel技能方面的问题,您可以给公子留言,有可能您的问题就会在下一个视频中出现!




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多