Excel 使用关键词搜索并返回多个匹配的数据
大家好,今天和大家分享一个典型的需求的解决方法,即使用关键词在一列种查找,返回与包含关键词的所有数据。
今天的文章,给大家介绍使用公式达到上述效果。
公式
首先给出通用公式:
=IF(搜索词="","",INDEX(元源数据列,SMALL(IF(ISERROR(SEARCH(搜索词,源数据区域)),大于源数据区域最后一行的的数字,ROW(源数据区域)),ROW(A1)))&"")
公式是数组公式,需要以三键输入(Ctrl+Shift+Enter)。公式中,
- 搜索词表示关键词所在单元格,使用绝对引用方式;
- 源数据列表示源数据所在列;
- 源数据区域,使用绝对引用方式;
- 大于源数据区域最后一行的的数字,字面意思,需要大于源数据区域最后一个单元格的行数。
在本例种,对应的公式如下:
=IF($E$2="","",INDEX(B:B,SMALL(IF(ISERROR(SEARCH($E$2,$B$3:$B$11)),1000,ROW($B$3:$B$11)),ROW(A1)))&"")
第一个单元格输入上述公式后,下拉复制到余下单元格。关键词单元格输入内容,在下方区域种就可以显示包含关键词的所有结果。
今天就到这里,有什么问题可以留言交流。
转载注明:文章转载自「懒人Excel - www.lanrenexcel.com」
整张表格能用这个方法搜索吗
理论上是可以的,但是区域变成整列,性能将严重下降,会非常慢,不推荐整列引用。
把公式复制,数据套用原数据,也没实现这个功能,这里有个疑问,search 是寻找单元格内查找内容的未知,这里用到数列,仅对B3有用啊,不大理解
公式是数组公式,需要以三键输入(Ctrl+Shift+Enter)。
点击搜索结果能定位 就好了
搜索范围是多列数据怎么办呢?
这个先研究一下,后续有好的方案分享出来。要是大家有好的思路,也可以回复分享。
如果我想把搜索出来的多个数据都放在同一个单元格,可以实现吗?各位大大
可以使用TEXTJOIN函数实现
很好的组合!就是有个希望改进的地方:如果B列里面有重复值,通过此公式无法实现去重复值的效果,可以实现吗?
再研究一下,看能不能同时达到去重的目的
我目前的做法就是通过辅助列来实现,即先在辅助列提取出非重复项,再用关键字检索函数实现此目的
我在想是不是可以将去重复的辅助列转化成一个虚拟数列,在通过类似提取关键字函数来实现,不知道有没有这种函数
我目前的做法只有通过添加辅助列,即在辅助列里面先提取出非重复项,再使用提取关键字组合公式来实现,我一直在找此问题的函数公式解决办法,目前都是将将这两个功能分开展示,没有将关键字检索及去重复值结合起来使用
都看不懂
想问一下,输完公式后也三键了,输入关键词返回的是错误值是为什么。
我成功了,刚刚是在表格的中间处理的,这次移到最上方就可以了,这又是为什么呢
可能是公式中的单元格引用没有或多加了固定符号$
这个公式的应用场景跟普通的筛选功能差异在哪呢?
文章中是搜索并返回多个数据的最简单模型。利用这个方法可以实现更复杂的搜索查询,而这只需要输入目标文本即可。
如果使用自带筛选功能,需要每次打开筛选、点击下拉菜单、输入目标文本、点击确定,才能得到结果。两个方法对比一下,第一个方法明显效率更高。
如果数据源是多列表格,查询结果可以返回多列吗?
可以根据搜索得到的列,再进行一次VLOOKUP或INDEX+MACT查找其他列数据
为什么最后要加&“”呢 是变成文本吗 不理解如果不加 会出现什么困扰?
是在输入公式前就要(Ctrl+Shift+Enter)吗?然后结束后也要?
不是的,先按正常方式键入公式,最后以三键结束
终于解决 感谢
要是返回两列的数据怎么做,比如在小区后面加个店址
输入AA,既要找出小区同时小区地址也有
可以根据搜索出来的小区名称,使用VLOOKUP在区域中查找对应的店址。
想问一下,上面第一个动图,E2单元格输入时(还未按enter确认)下面公式就会自动计算,这是新版才有的功能吗?我是2010版,只有按了enter下面的公式才会计算……
这个是使用了 ctrl + enter 快捷键,enter 后保留原位置。参考这篇介绍
最后那个 ROW(A1) 是什么意思
ROW(A1)返回引用单元格的行号,在这里是1,用作返回匹配的第一个值。下拉复制的时,依次增加,返回2、3、4…个匹配的值。
那要是我的左侧列是从a列开始的呢,好像公式就用不了
和这个没关系。如果从A列开始,只需要在公式里修改一下对应的列就可以
这个公式还没有学会,倒是学会数组的意思了,感谢
下拉复制到余下单元格后依然是相同的结果请问是什么?
输入完数组公式后按三键结束公式,再下拉复制余下单元格
可能是没有正确输入数组公式,需要以三键输入(Ctrl+Shift+Enter)