课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
本节分享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数组运算
本节完,你学会了吗,欢迎留言
---------------------
欢迎关注,更多精彩内容持续更新中....