前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多个关键词匹配查找问题,这个方法可能更优!

多个关键词匹配查找问题,这个方法可能更优!

作者头像
大海Power
发布2021-08-31 11:35:15
1.1K0
发布2021-08-31 11:35:15
举报
文章被收录于专栏:用户8950297的专栏

- 问题 -

最近,在项目上碰到一个用多个关键词去匹配从而识别出内容的归属问题,比如公司的产品,虽然有标准的型号,但是,可能在实际应用中(尤其是一些手工报表),会有简称、简写、中文名称等多种情况,这时,就可以考虑通过多个关键词来识别出该产品的标准型号。

经过简化转换,以下通过识别出标准省份为例:

- 常规解法 -

这个问题咋一看起来,感觉跟以往的关键词(一个列表)的形式有点儿不一样,实际上,经过简单转换,即可以变成原来的问题,如将列表进行逆透视:

这样,我们就得到了关键词的对照表:

当然,因为这里还有英文,所以为了避免大小写的问题,如前面文章《n个关键词,还大小写不一,咋统计?》和《再用关键词统计这个案例,把3种算法优化思路讲清楚。》里的方法,可以先转换为大写或小写,这样避免后面在进行判断过程中再频繁转换。

经过对关键词对照表的处理,我们就可以在需要进行关键词匹配的地方引用该表(为了提升效率,先对表进行缓存,相关知识可参考文章《PQ-M及函数:加Buffer缓存提升查询效率》),并通过合适的办法来获取对应的信息了。

首先,我们最常用的方法,即通过Table.SelectRows去筛选出符合条件的内容,然后取其中第1条(行)中的省份列。(相关案例可参考《这个用Power Query操作步骤太多了,还不如用VBA?》)如下所示:

- 改进解法 -

但是,我们仔细想一下,这个问题里,我们只要找到关键词里的一个就可以了,并不需要对全表进行搜素,也就是说,我们只要找到表中第一条符合条件的数据,即可返回结果,于是,方法改进如下:

即对表从头开始判断,跳过(Table.Skip)表最前面不符合条件的行,这样得到的结果表中的第一行(Table.First)即为符合条件的行(记录),从中取出省份的内容即可。

- 关于关键词 -

关于关键词的问题,前面举了大量的例子,这些例子都来自于实际工作,表面上看起来五花八门,但实际都可以转化为内容的包含判断、表或列表的操作,而且,往往一题多解,如我前面文章中有个例子《惊呆必藏!1个实际工作问题,15种解法,练好22个函数!》。

总的来说,关键还是在于对表即列表相关函数的熟悉和灵活运用。后续我会遇到相关问题时,继续与大家分享,让大家可以通过更多的案例来熟悉这些函数即应用场景。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档