Excel困扰许久的多条件模糊查找,输出不同结果,被find函数搞定

查找函数大家习惯了用 vlookup,而 find 函数用的人相对较少。


单从字面理解,find 就是用来查找的,其语法也不复杂。但是这个函数有一些非常精彩的用法,恐怕掌握的人为数不多。

比如,某同学说他为了一个需求困扰了很久,一直没有很好的解决方法:对一列数据进行多条件模糊查找,找到以后,根据不同的查找条件,输出对应的值。就是我们今天的案例 3,我用 find 函数,连辅助列都不需要,短短一个公式就解决了他的难题。

作用:

  • 在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值

语法:

  • FIND(find_text, within_text, [start_num])

参数:

  • find_text:必需,要查找的文本。
  • within_text:必需,包含要查找文本的文本。
  • [start_num]:可选,指定开始进行查找的字符。如果省略,则假定为 1。

说明:

  • FIND 函数区分大小写,并且不允许使用通配符。

用法示例:

  1. 查找含有特定字符的单元格
  2. 多条件模糊查找
  3. 根据多个查找条件,输出不同结果
  4. 按照等级计算奖金

案例 1:查找含有特定字符的单元格

下图 1 为某公司部分员工列表,查找出 A 列中所有云字科的员工,在 B 列中写入“云字科”,如下图 2 所示。

解决方案 1:

1. 在 B2 单元格中输入以下公式,下拉复制公式:

=IF(ISNUMBER(FIND("云",A2)),"云字科","")


公式释义:

  • FIND("云",A2):在 A2 单元格中查找“云”字,找到会返回一个数字,表示它在文本中的位置;找不到则返回错误值
  • ISNUMBER(FIND("云",A2)):用 isnumber 判断 find 函数返回的是否是数字
  • IF(...,"云字科",""):如果是数字,说明找到“云”字了,输出“云字科”;否则,就留空

案例 2:多条件模糊查找

查找出所有徒弟,在 C 列中写入“徒弟”。

解决方案 2:

1. 在 C2 单元格中输入以下公式,下拉复制公式:

=IF(COUNT(FIND({"云","鹤","九","霄"},A2)),"徒弟","")

公式释义:

  • FIND({"云","鹤","九","霄"},A2):会出现一个由数字或错误值组成的数组;数字表示找到这个字,错误值表示没找到
  • COUNT(FIND({"云","鹤","九","霄"},A2)):用 count 函数统计数组中的数字个数,只要 >0 就表示含有“云”、“鹤”、“九”、“霄”其中之一,那就是徒弟
  • IF(...,"徒弟",""):如果 count 值不为 0,输出“徒弟”;否则,就留空

案例 3:根据多个查找条件,输出不同结果

查找出 A 列中所有徒弟,并在 C 列中写入该徒弟对应的字。

这个就是网友苦思冥想不得其解的需求,相当于多条件模糊查找,再根据不同条件输出对应结果。


网友之前想了很多种方式,包括 vlookup、lookup 等等,都没有好的解决办法。没想到用 find 给轻易破解了。

解决方案 3:

1. 在 D2 单元格中输入以下公式,下拉复制公式:

=IF(COUNT(FIND({"云","鹤","九","霄"},A2)),MID(A2,2,1)&"字科","")

公式释义:

  • COUNT(FIND({"云","鹤","九","霄"},A2)):这部分公式跟上一案例一样,先用 find 函数在单元格中依次查找 4 个字,得出一个由数字或错误值组成的数组;再用 count 函数统计数组中的数字个数
  • IF(COUNT(FIND({"云","鹤","九","霄"},A2)),:如果数字个数不为 0,说明名字中含有某个字;
  • MID(A2,2,1)&"字科",""):这个字通常在第二位,所以用 mid 函数取出名字中的第二个字,用 & 符号跟“字科”连接起来,就是想要的结果;否则显示空值

案例 4:按照等级计算奖金

下图 1 某公司员工的年终评级及对应的奖金规则,请按照规则快速计算出年终奖。如下图 2 所示。

解决方案 4:


1. 在 F2 单元格中输入以下公式,下拉复制公式:

=FIND(E2,"DCBA")*500&"元"

公式释义:

  • FIND(E2,"DCBA"):查找 E2 单元格的值在“DCBA” 中第几位,比如“C”在第 2 位,结果就为 2
  • FIND(E2,"DCBA")*500:用上述值乘以 500,就是奖金梯次规则
  • &"元":最后再用连接符号跟币种相连

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

相关文章

认识一下Excel中的FIND 函数

当需要从字符串中提取部分字符时,提取的位置和字符数量往往是不确定的,需要先根据指定条件进行定位。FIND 函数和 SEARCH 函数,以及用于双字节字符的 FINDB 函数和 SEARCHB 函数都可...

Excel中FIND函数用在数值查找上,生成查找的索引

奖金发放按五个级别来,计算方法有很多种:VLOOKUP、SUMIFS这都是非常常规的方法,今天要介绍的是一种开阔视野的一种处理方法,熟悉字符串处理的同学,肯定了解FIND函数:FIND函数可以在一个字...

查找匹配,Vlookup函数公式,1分钟入门至精通!

在职场工作中,Vlookup公式用的是很频繁的,几乎每天都要用到,每个职场新人都得学会1、Vlookup基础介绍VLOOKUP是由4个参数组成的=VLOOKUP(查找值,查找数据,查找列,匹配方式)举...

全称查找简称,Lookup和Find公式组合,太厉害了

举一个工作中的例子来说明,老板发给你一堆数据,需要你把对应的负责人给填写出来a列信息是杂乱无章的地址信息,是全称信息,右边是简称信息find公式1、普通用法:=find(查找文本,查找的单元格)当我们...

excel函数技巧:你不知道的find函数巧妙用法

如图,想提取A列数据中的日期,可以借用find函数的start_num参数,从第9个开始查找“-”,从而配合left函数完成日期提取。公式如下:=MID(A3,1,FIND("-",A...

Excel--find和search函数

先贴上微软的官方函数解释FIND、FINDB 函数support.microsoft.com/zh-cn/office/find%E3%80%81findb-%E5%87%BD%E6%95%B0-c7...