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

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

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

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

然后自定义模糊匹配函数:
Fx = (x) => Table.SelectRows(颜色价格, each Text.Contains(x,[颜色])){0}[价格]其中Fx为函数的名称;
(x)为参数名称,即函数作用于的对象;
Table.SelectRows(颜色价格, each Text.Contains(x,[颜色]))
表示筛选颜色价格表中,[颜色]字段被x包含的行,即此函数得到的是一张经过筛选的表,后面加上{0}[价格]表示取这张表第一行[价格]列的数据。
函数定义好后就可以调用这个函数了:
价格 = Table.AddColumn(产品,"价格
在数据分析中,当需要进行模糊匹配时,常规的合并查询或Power Pivot关系建立无法满足需求。本文介绍了如何在Power Query中自定义函数来实现模糊匹配。通过创建一个自定义函数,例如用于检查产品颜色是否包含在另一表格的指定颜色中,从而获取匹配的价格信息。首先,将数据导入Power Query并分别命名,然后定义函数,利用Text.Contains进行文本包含检查,并返回匹配行的相应价格。

2302

被折叠的 条评论
为什么被折叠?



