◆ ◆ ◆ ◆
2018新年快乐
HAPPY NEW YEAR
◆ ◆ ◆ ◆
一句迟到的祝福,祝福2018年新年快乐,心想事成!
今天分享Excel中经典的关键词查找问题,该解题思路也多用于模糊查找。
如下例题所示:A列是记录地址数据,这只是一大串数据的几个,我们希望归集数据的区域,如果A列中带有'拱墅'两个字符,那么输出拱墅区。
你能想到几种解决的方法?
在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函数也能得到同样的结果。
在B2输入公式:
=IF(COUNTIF(A2,'*拱墅*'),'拱墅',IF(COUNTIF(A2,'*西湖*'),'西湖',IF(COUNTIF(A2,'*下城*'),'下城','')))
公式解释:
该公式用COUNTIF(A2,'*拱墅*')替代ISNUMBER(FIND('拱墅',A2))的功能
COUNTIF(A2,'*拱墅*')中的*为通配符,表示前后含有拱墅的字符,则计数为1,没有则计数为0
再通过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数组运算