如何合并表并将不匹配的记录包括为0而不是null?

时间:2019-04-04 21:06:49

标签: powerbi powerquery

我在Power Query中有两个表:Analytics(分析)和Inventory(库存)。我需要将它们合并在一起,以便将现有的Google Analytics(分析)记录添加到“库存”表中,并且在没有匹配项的情况下,“访问次数”列变为0。我使用“页面/ URL”作为链接列。

库存表

URL   | Created By
Page1 | John
Page2 | Mike
Page3 | Scot

分析表

Page  | Visits
Page1 | 12
Page2 | 10
Page5 | 5

所需结果表

URL   | Created By | Visits
Page1 | John       | 12
Page2 | Mike       | 10
Page3 | Scot       | 0

在Power Query中进行合并之前,我先使用Text.Trim,Text.Lower,Remove Rows(删除重复项和删除空白行)和Table.SelectRows来清除Page / URL中的数据,以使用空的页面/ URL。

我对库存::: Analytics(分析)进行了左外部联接,但是当我按页面查找访问时,访问显示为“空白”而不是0。我尝试通过在Power Query Table.ReplaceValue(referenceToAboveLine, null, 0,Text.Replace, {Analytics})中的合并后添加以下代码来解决此问题,但是这导致查询花费了非常长的时间,并且我不得不超时。

我要去哪里错了?我使用了错误的Join方法吗?合并后是否有更好的方法替换空值?

1 个答案:

答案 0 :(得分:1)

根据我的经验,DAX可以很好地处理空值,因此我不确定您是否需要出于计算目的进行转换,但是假设您这样做了。

可以尝试使用Table.ReplaceValue而不是Table.Transform

Table.TransformColumns(
    referenceToAboveLine,
    {{"Visits", each if _ = null then 0 else _, Int64.Type}}
)