分享

函数如何实现多关键词查询?直接套用!

 Wayne_Hu 2022-07-10 发布于江西

今天主题:多关键词提取!


单个条件,大家都都很熟悉了,VLOOKUP或者INDEX+MATCH的套路
如果有多个关键词我们要如何处理呢?比如只要包括一系列关键词中的一个就提取出来。

看一下我们的案例和需求说明,你有思路吗?
图片

我们提供几种处理方案!

还是先来看看简单吧,不然上来就函数,估计小白就吓跑了!


技巧法 | 高级筛选了解一下!


▍第一步:设置好条件区域
想要表示包括关系,我们只需要在关键词左右两边添加上星号【*】即可!

在高级筛选条件设置中,同一列表示或者关系!
更多的设置,可以阅读专题-
Excel高级筛选系列教程(完整版)-第二期注入灵魂的条件区域设置(上篇)

图片

▍执行高级筛选

根据动画演示操作高级筛选即可,通用的操作方法!

图片

使用高级筛选这个技巧来处理,胜在简单,但是也有问题就是数据变动都要重新筛选!那么有没有自动更新的方法,有!


函数法 | 多条件查找通用套路


这里是包括,那么最先想到的方式应该就是查找类,比如FIND或者SEARCH!

▼新手劝退公式
=IFERROR(INDEX($A$1:$E$17,SMALL(IF(MMULT(IFERROR(FIND({'瓜','果','子'},$B$2:$B$17),),{1;1;1}),ROW($B$2:$B$17)),ROW(A1)),COLUMN(A1)),'')

图片

公式看上去有点复杂,但是思路却很简单:
我们用这三个关键词去每一个名称中查找,结果无法包含(返回在名称中的位置)和不包含(返回错误值)
图片

下一步,我们把错误值转成0,然后求一下每一行的三个关键词的合计,如果不等于0,说明包括,返回行号,配合INDEX提取即可!

▎错误值转成0
图片


▎同一行相加,MMLUT函数
图片


也有简单的,直接使用FILTER即可!
▼FITLER的出现,改变了我们的“万金油”老套路
=FILTER($A$2:$E$17,MMULT(IFERROR(FIND({'瓜','果','子'},$B$2:$B$17),),{1;1;1}))

图片

使用VBA考虑使用Instr这个函数来处理会简单很多,这里就不再啰嗦!感兴趣的可以尝试一下!

在Power Query中可以尝试使用我们前两天分享的 Text.PositionOfAny 这个函数,全部查找不到会返回-1,根据这个判断即可实现!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多