模糊匹配查询_使用Power Query进行模糊匹配

在数据分析中,当需要进行模糊匹配时,常规的合并查询或Power Pivot关系建立无法满足需求。本文介绍了如何在Power Query中自定义函数来实现模糊匹配。通过创建一个自定义函数,例如用于检查产品颜色是否包含在另一表格的指定颜色中,从而获取匹配的价格信息。首先,将数据导入Power Query并分别命名,然后定义函数,利用Text.Contains进行文本包含检查,并返回匹配行的相应价格。
01b2bf4762f242025594842503efe74f.gif

在数据分析中,我们经常会需要数据匹配,比如将事实表与维度表进行匹配来获取维度表中的信息。对此,我们可以通过Power Query中的合并查询,或者在Power Pivot中建立关系而轻易实现,但是前提是匹配列的数据是能对应得上的,如果是模糊匹配,那用以上的方法便会匹配不上。

那么在Power Query中怎么进行模糊匹配呢?

5aad061ccd47aae0c71876d5be3b04e6.png

比如,我们需要给下列左图中的产品匹配上价格:

3925cb5d2acf20249401bc6b8bbf3247.png

在Power Query中并没有菜单操作可以实现模糊匹配,需要自定义函数来解决此问题,那我们来看下比较简单的能实现此功能的自定义函数是怎样的吧:

d70f65749d3c224c4ed9bf342d79226c.png

首先,我们先把两张表导进同一个查询,分别命名为“产品”和“颜色价格”:

7b50fa433183f222a966353f48dd39f7.png

然后自定义模糊匹配函数:

Fx = (x) => Table.SelectRows(颜色价格, each Text.Contains(x,[颜色])){0}[价格]

其中Fx为函数的名称;

(x)为参数名称,即函数作用于的对象;

Table.SelectRows(颜色价格, each Text.Contains(x,[颜色]))

表示筛选颜色价格表中,[颜色]字段被x包含的行,即此函数得到的是一张经过筛选的表,后面加上{0}[价格]表示取这张表第一行[价格]列的数据。

函数定义好后就可以调用这个函数了:

价格 = Table.AddColumn(产品,"价格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值