最近有几个星友问到,如何进行数据的模糊匹配?本文就利用一个简单的例子,来看看PowerBI是如何快速完成模糊匹配的。

模拟数据如下,有两个表,分别是各省市2018和2019年的数据,

这是个很常见的场景,由于某种原因,两个年度的省份名称规则不一致,2019年全称,而2018年是简称。

把两年的数据合并到一起,本来用Excel的VLOOKUP函数就可以轻松做到的事情,因为省份名称不一致而增加了不少难度。

这个问题用Excel公式或者M函数也能找到解决方案,这里分享个更简单的方法,直接使用Power Query的模糊匹配功能。

将这两个表格导入到PowerBI中,进入Power Query编辑器,点击合并查询,以省份为关联列,如下图所示。

联结种类选择为左外部,最重要的是在联结种类下面,勾选“使用模糊匹配执行合并”

点击确定,并展开合并列,看看是什么效果。

竟然都是空值!

就是没有匹配成功,是不是这个模糊合并功能不好用呢?

当然不是。

在上面勾选模糊匹配时,你应该能注意到,下面还有个模糊匹配选项,打开后发现还有这些参数可以设置:

这些参数都是可选的,但是为了匹配的效果,还应该了解这些参数的用法。

其中第一项相似性阈值,就是相似度达到多少时匹配,默认是0.8,但是上面的数据,相似度最高才0.67(比如"北京"和"北京市"),所以默认匹配时全部没有匹配成功。

而"新疆"和"新疆维吾尔自治区"的相似度更低,只有0.25,所以为了都能匹配成功,我们把这个阈值调到0.25,然后看看匹配的效果。

正式期望的结果,是不是很简单。

所以匹配之前,还要先了解你的原始数据,预估相似的比例,调整阈值,才能更好的完成模糊匹配。

第二个可选参数是最大匹配数,如果不填,会把所有匹配行找出来,如果另一个表不止有一行,可以根据需要,想匹配出来几行就填写数字几。

最后一个参数是选择转换表。可以通过查询中的另外一个表作为转换表进行匹配,在转换表中,可以提前定义好,不规范值和规范值的对应关系,相当于同义词表,特定场景下非常有用。

关于模糊匹配就简单介绍到这里,后面两个参数的使用,有需要时可以自行测试效果。

最后要说的是,不要因为有模糊匹配功能,就可以对源数据不加约束,依然应该尽量规范你的数据源,能保持一致最好。

模糊匹配一方面是计算量特别大,另外既然是模糊查找,就很可能会有误差,当数据量比较大时,这种数据误差还很难被识别出来。

这里用到的功能,来自PowerBI Desktop中的PowerQuery模块,Excel里面的PowerQuery暂时还没有更新到这个功能。

所以,建议大家在合适的情况下,尽量养成用PowerBI Desktop进行数据处理的习惯,而不是Excel;PowerBI Desktop完全免费,功能齐全,为什么不用呢?

-精彩推荐-

采悟:PowerQuery技巧:批量合并Excel表的指定列​zhuanlan.zhihu.com

采悟:二维表转一维表,看这篇文章就够了​zhuanlan.zhihu.com

采悟:利用PowerQuery,人人都可以零代码调用API获取经纬度​zhuanlan.zhihu.com

from 知乎 @采悟

批量模糊查询_模糊匹配,Power Query的这个功能太实用了,可惜Excel还没有相关推荐

  1. java中sql模糊查询_模糊查询的sql语句(java模糊查询sql语句)

    模糊查询的sql语句(java模糊查询sql语句) 2020-07-24 11:06:02 共10个回答 假设表名为product,商品名为name,简界为remark.则可如下写:select[na ...

  2. java姓名模糊查询_模糊查询(仅针对后端)

    只是后台完成 没有跟前台连接 需求 :可通过姓名.电话.邮件来模糊查询 1.mapper.xml 注意 对象"com.catgo.admin.entity.User" 这个包名是J ...

  3. MySQL模糊查询 结果按匹配度 排序

    我们在使用 MySQL 进行模糊查询的时候,受到默认排序的影响,我们会发现与查询关键字相似的记录有时候并没有排到最前面. 如 : CREATE TABLE user(id BIGINT(11) AUT ...

  4. c3p0 参数 模糊查询_MySQL模糊查询用法大全(正则、通配符、内置函数等)

    文章来源:MySQL模糊查询用法大全(正则.通配符.内置函数等) 原文作者:陈哈哈 来源平台:CSDN SELECT * from table where username like '%陈哈哈%' ...

  5. clob和blob是不是可以进行模糊查询_你知道什么是 MySQL 的模糊查询?

    作者 | luanhz 责编 | 郭芮 本文对MySQL中几种常用的模糊搜索方式进行了介绍,包括LIKE通配符.RegExp正则匹配.内置字符串函数以及全文索引,最后给出了性能对比. 引言MySQL根 ...

  6. mongodb模糊查询_我叫Mongo,收了「查询基础篇」,值得你拥有

    这是mongo第二篇「查询基础篇」,后续会连续更新6篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通过上一篇基础篇的介 ...

  7. java表格模糊查询_使用java图形报表时,如何进行模糊查询

    模糊查询是利用"_"表示单个字符和"%"表示任意个字符进行匹配的.一些常见的格式如下: Select * from 表名 where 列名 like '%'; ...

  8. php 字符串匹配 like,ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法...

    搜索热词 ThinkPHP的数据库条件查询语句有字符串式,数组式书写方法 字符串式即是原生式,数组式查询语句因书写方式与特定字符的原因比较复杂,下面为大家例出了常用的ThinkPHP数组式查询语句的使 ...

  9. java list 模糊查询_如何在java List中进行模糊查询(示例代码)

    比如我有下面这样一个List,里面存放的是多个Employee对象.然后我想对这个List进行按照Employee对象的名字进行模糊查询.有什么好的解决方案么? 比如我输入的查询条件为"wa ...

最新文章

  1. 小程序picker_小程序·云开发实战 - 迷你微博
  2. ASP.NET-GridView数据绑定的几种方法
  3. tp5某个字段相同的数据只取一次_多维分析数据仓库建设建议-面向主题的建模...
  4. CVPR | BASNet:边缘感知的显著性物体检测
  5. 鸿蒙系统联合,跨界联合 华为鸿蒙系统赋能厨电业
  6. Python 项目中requirements.txt依赖文件的使用
  7. python抢小米6自动化脚本
  8. java事件监听机制 概述
  9. 电脑版idm下载器好不好用?
  10. oracle 日期格式筛选,oracle 日期格式怎么筛选
  11. DSPE-PEG-NHS;磷脂-聚乙二醇-活性脂,可用于基因转染和疫苗传递(科研试剂)
  12. 开发微信小程序的必备技能图谱
  13. 水源热泵系统的优点和缺点有哪些?
  14. src中的 “/”、“./”与“../”
  15. 用js脚本写的仿Windows7的扫雷游戏(高仿真)
  16. echarts gallery,echarts社区地址(可视化作品分享的地址)
  17. 高通骁龙845的android手机有哪些,骁龙845手机有哪些 2018搭载高通骁龙845的手机推荐...
  18. FFmpeg基础到工程-多路H265监控录放开发学习笔记
  19. cocos creator V1.9 制作像素鸟游戏(1)-场景设计
  20. HD wallet的创建、导入

热门文章

  1. WebSocket和Socket
  2. python子进程模块subprocess
  3. 网络工程师成长日记421-某银行技术支持
  4. 五大IT巨头 成立专利联盟
  5. iOS开发之pch文件的正确使用
  6. Android把自己应用加入到系统文件分享中
  7. Flex数据绑定陷阱(一)
  8. seaborn.FacetGrid
  9. find the OPP in your life
  10. pyspark reduce代码示例