跟Excel打交道久了,会发现有些问题会被频繁的提起。
这些问题都属于众多Exceler的共性问题,经常会遇到。
比如下面这个就是一个非常经典又通用的模糊查询问题。
如下图所示:
要根据A列黄色的地址和C列绿色的省份清单,提取A列地址所在的省份到B列蓝色部分。
这个问题如果数据量特别大,用手工肯定是耗时的,用Ctlr+E智能填充也是行不通的。
所以今天,我们来看看函数如何做此类问题。
这个问题其实可以抽象概况成这样的问题模型:
有一列关键词,在每个单元格内容中寻找出现的关键词是哪个?
这种问题的解决思路是这样的:
把每一个关键词都跟单元格的内容进行模糊匹配,只要匹配上了,就表示这个关键词存在于这个单元格中。
为此,只要解决用每一个关键词都跟单元格的内容进行模糊匹配这个就行了。
在Excel中有3个函数可以做这个事:
Find函数
=FIND($C$2:$C$32,A2)
Search函数
=SEARCH($C$2:$C$32,A2)
Match函数
=MATCH($C$2:$C$32&”*”,A2,0)
这3个函数都是把C列的关键词去和一个单元格的内容进行模糊匹配,返回的结果是一列数组。
如果匹配上了,Find和Search函数返回的是关键词在单元格内容中的位置,Match函数返回的都是1,因为被查找的单元格区域只有1个单元格。
如果没匹配上,返回的结果都是错误值。
接下来只要利用Lookup函数的天然特性,就可以将找到的关键词提取出来。这里我们选择Find函数来做,公式如下:
在B2单元格中输入公式,填充下拉即可。
=LOOKUP(2,1/(FIND($C$2:$C$32,A2)=1),$C$2:$C$32)
上述公式利用了Lookup函数在二分法查找时,只要查找值比要查找的内容都大,就可以返回最后一个查找数值的特性,快速地提取关键词。
至于Lookup函数的天然特性,我们将择日再详细讲解。
今天的经典函数案例解答就到此为止。