在数据分析中,我们经常会需要数据匹配,比如将事实表与维度表进行匹配来获取维度表中的信息。对此,我们可以通过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包