分享

FIND函数能否一次查找多个关键词?

 偷懒的技术 2022-03-10

函数公式职场模板 财务应用分析图表练习题快捷键软件工具表格合并图表及可视化Office 365Power Query表格美化符号作用条件格式学会骗一本不正经避坑指南数据整理筛选技巧偷懒宝典漂亮3DWPS技巧PPT技巧Word技巧

👆上面是分类专题👆

  👇下面是最新文章👇


·  正  ·  文  ·  来  ·  啦  ·

Excel偷懒的技术读者群群友提问,下面的公式为什么是错的:

=LEFT(A2,FIND(or("镇","乡"),A2))

这个公式应该是要提取某个地址中截止“乡”和“镇”前面的部分。

也就是说,要用FIND函数来查找多个关键词。

公式一:

Excel偷懒的技术以前写过一篇文章:

介绍了FIND函数用常量数组一次性查找多个:

=IF(COUNT(FIND({"A","B","C"},A13,1)),"通过","不通过")

在此基础上,对公式稍做修改:

=LEFT(A2,SUM(IFERROR(FIND({"镇","乡"},A2),0)))

解释:

公式使用IFERROR来容错,当查不到"镇","乡"时,取0。

公式二:

为了避免用FIND查找时,没有要找的字符时出错,我们还可以在地址后加上”乡镇“。然后再用MIN来取较小的值。

公式:

=LEFT(A2,MIN(FIND({"镇","乡"},A2&"镇乡")))

公式三:

还可以使用LOOKUP函数

=LEFT(A2 , -LOOKUP( , - FIND({"乡","镇"},A2) ))

此公式的解释请参见:

关于LOOKUP函数的相关文章:

扩展:

实际工作中,地址并不都是“XX乡”、“XX镇”,比如,市区地址用的是“XX街道”,因而提取的关键字应该再加上“街道”。

将公式再完善一下 :

=LEFT(A10,MIN(FIND({"镇","乡","街道"},A10&"镇乡街道")))&IF(ISERR(FIND("街道",A10)) , , "道")

解释:

在原公式后加了一段:

&IF(ISERR(FIND("街道",A10)) , , "道")

是为了给提取后的地址补上“道”字


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多