excel基础函数积累之FIND与Search
在excel使用中,经常需要知道某个文本是否存在于在指定的文本当中,在文本当中的位置等,如果这个操作你还不会的,那今天的内容不别错过!今天介绍Find和Search函数。
这两个函数功能都是在给定的文本或单元格中查找指定的文本,然后返回查找到的文本在另一个文本或单元格中的位置,它们的语法形式上是完全一致的,语法分别为:
=FIND(find_text, within_text, [start_num])
=Search(find_text, within_text, [start_num])
其中的find_text均代表需要查找的内容,within_text为被查找的文本或单元格,[start_num]为查找开始的位置,这是个可选参数,当省略的时候默认为从第一个字符开始查找。三个参数通俗讲就是“查找谁,在哪里查找,从哪个位置开始找”。
这两个函数功能和语法都差不多,那它们之间究竟有没有什么区域,使用的时候又应该如何选择呢。区别还是有的,大概有以下区别:
Search不区分大小写,并且允许使用通配符“*”和“?”,也就是说Search是支持模糊查找的,,Search要实际查找“?”和“*”需要加上"~",即“~?”和“~*”。而Find函数则区分大小写,且不允许使用通配符“*”和“?”,也就是说Find函数是不支持模糊查找的。所以如果希望执行区分大小写的搜索或不允许使用通配符,则可以使用 Find函数,反之则选择Search。
两个函数在查找时,如果没有找到需要查找的内容,则都返回错误值 #VALUE!;如果查找开始位置不大于1,也都返回错误值 #VALUE!;如果查找开始位置大于第二参数的总长度,同样都返回错误值 #VALUE!。
接下来通过两个例子来说明一下它们的使用方法:
一、数字和汉字混合在一起,需要将数字提取出来,如下:
文本 | 数字 |
顺呆98745878 | |
棵棵树685421 | |
3684587154柯极 | |
枳顺工452陛只 | |
经楞8571254877朋休林 |
思路分析:
1.通过Mid获取文本中的连续数字
2.使用Mid需要知道开始位置和需要获取的长度
3.获取开始位置可以通过row函数构造0至9十个数,再通过find函数分别查找每个数字第一次出现的位置,如果有在要查找的文本中没有出现的数字,这时函数会返回#VALUE!错误值,所以用IFERROR函数将错误值转化为一个大于文本长度的数字,这里选择100,当然也可以使用Len数+1来处理,此时会得到一个由各数字第一次出现位置组成的数组,这个数组中最小的那个值就是文本中出现连续数字的位置,所以再用min函数获取这个最小值用作mid函数截取数字的开始位置。
4.获取长度就是连续数字的长度,可通过Mid函数将文本的每个字符分别截取出来,截取次数大于文本长度数,这里估100,再通过数学运算符将数字文本转为数字,由此得到一个由所有截取的字符组成的数组,最后通过Count统计出其中数字的个数。
5.函数涉及数组的使用,所以最终要用数组组合三键——Ctrl+Shift+Enter结束
二、根据文本中的部分内容,匹配完整信息。操作如下图:
思路就是利用昨天介绍的Lookup函数的乱序下精确查找的套路公式,查找到片段后返回完整信息。如果不清楚Lookup函数的乱序下精确查找的套路公式,请翻看昨天的相关文章,如详细的原理讲解。
一文讲清二分法的查找原理和Lookup的乱序下精确查找套路公式
以上两个例子中的Find函数完全可以直接替换成Search函数,结果一致,有兴趣的朋友可以自行测试下。
本文就介绍到这里,如果有什么不理解的或更好的建议,请评论区告诉我哦!