今天分享Excel中经典的关键词查找问题,该解题思路也多用于模糊查找。
如下例题所示:A列是记录地址数据,这只是一大串数据的几个,我们希望归集数据的区域,如果A列中带有拱墅两个字符,那么输出拱墅区。
你能想到几种解决的方法?
思路一:IF+FIND函数
在B2输入公式:
=IF(ISNUMBER(FIND(拱墅,A2)),拱墅,IF(ISNUMBER(FIND(西湖,A2)),西湖,IF(ISNUMBER(FIND(下城,A2)),下城,)))
简化关键函数解释:
=IF(ISNUMBER(FIND(拱墅,A2)),拱墅,)
公式A:Find(拱墅,a2),表示在A2中查找关键词拱墅,如果有的话,会返回一个位置,即7
如果没有,返回错误
公式B:ifnumber(公式A),如果括号里面的公式是数值7,那么整体公式返回TRUE,如果括号里面是错误值,那么整体公式返回FALSE
整体公式:IF(公式B,拱墅,),如果公式B的值是TRUE,为拱墅,否则为空
然后一直使用IF函数进行嵌套即可得到结果。当然将FIND函数改成SEARCH函数也能得到同样的结果。
思路二:IF+COUNTIF
在B2输入公式:
=IF(COUNTIF(A2,*拱墅*),拱墅,IF(COUNTIF(A2,*西湖*),西湖,IF(COUNTIF(A2,*下城*),下城,)))
公式解释:
该公式用COUNTIF(A2,*拱墅*)替代ISNUMBER(FIND(拱墅,A2))的功能
COUNTIF(A2,*拱墅*)中的*为通配符,表示前后含有拱墅的字符,则计数为1,没有则计数为0
再通过IF得到结果
如果区域较多,使用IF函数嵌套复杂的话,可以通过下面两种思路进行计算
代替IF的两种思路
首先在D列建立一个关键词列,然后在B2输入公式:
=LOOKUP(100,FIND($D$2:$D$4,A2),$D$2:$D$4)
或输入公式:
=INDEX(D:D,MAX(ISNUMBER(FIND($D$2:$D$4,A2))*ROW($D$2:$D$4)))
这两个公式都需要使用CTRL+SHIFT+ENTER数组运算
本节完,你学会了吗,欢迎留言