多个关键词匹配查找问题,这个方法可能更优!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多个关键词匹配查找问题,这个方法可能更优!
- 问题 -
最近,在项目上碰到一个用多个关键词去匹配从而识别出内容的归属问题,比如公司的产
品,虽然有标准的型号,但是,可能在实际应用中(尤其是一些手工报表),会有简称、简
写、中文名称等多种情况,这时,就可以考虑通过多个关键词来识别出该产品的标准型号。
经过简化转换,以下通过识别出标准省份为例:
- 常规解法 -
这个问题咋一看起来,感觉跟以往的关键词(一个列表)的形式有点儿不一样,实际上,经
过简单转换,即可以变成原来的问题,如将列表进行逆透视:
这样,我们就得到了关键词的对照表:
当然,因为这里还有英文,所以为了避免大小写的问题,如前面文章《n个关键词,还大小
写不一,咋统计?》和《再用关键词统计这个案例,把3种算法优化思路讲清楚。
》里的方法,
可以先转换为大写或小写,这样避免后面在进行判断过程中再频繁转换。
经过对关键词对照表的处理,我们就可以在需要进行关键词匹配的地方引用该表(为了提
升效率,先对表进行缓存,相关知识可参考文章《PQ-M及函数:加Buffer缓存提升查询效
率》),并通过合适的办法来获取对应的信息了。
首先,我们最常用的方法,即通过Table.SelectRows去筛选出符合条件的内容,然后取其中
第1条(行)中的省份列。
(相关案例可参考《这个用Power Query操作步骤太多了,还不如用VBA?》)如下所示:
- 改进解法 -
但是,我们仔细想一下,这个问题里,我们只要找到关键词里的一个就可以了,并不需要对
全表进行搜素,也就是说,我们只要找到表中第一条符合条件的数据,即可返回结果,于是,
方法改进如下:
即对表从头开始判断,跳过(Table.Skip)表最前面不符合条件的行,这样得到的结果表中
的第一行(Table.First)即为符合条件的行(记录),从中取出省份的内容即可。
- 关于关键词 -
关于关键词的问题,前面举了大量的例子,这些例子都来自于实际工作,表面上看起来五花
八门,但实际都可以转化为内容的包含判断、表或列表的操作,而且,往往一题多解,如我前
面文章中有个例子《惊呆必藏!1个实际工作问题,15种解法,练好22个函数!》。
总的来说,关键还是在于对表即列表相关函数的熟悉和灵活运用。
后续我会遇到相关问题
时,继续与大家分享,让大家可以通过更多的案例来熟悉这些函数即应用场景。
【近期热门合集/文章】
这6个极大提高PQ数据处理速度的案例,快看看是不是你的情况!
收藏!35篇PQ文章合集,速度下载全套材料!
光看不练假把式!学好PQ就要练练练(免费视频36集)。