首页 > 解决方案 > 如何合并表并将不匹配的记录包含为 0 而不是 null?

问题描述

我在 Power Query 中有两个表:分析和库存。我需要将它们合并在一起,以便将存在的 Analytics 记录添加到 Inventory 表中,并且在没有匹配项的情况下,“访问”列变为 0。我使用 Page/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 中的数据,以删除任何具有空页的记录/网址。

我使用 Inventory :: Analytics 进行了左外连接,但是当我按页面查找访问时,访问显示为“空白”而不是 0。我试图通过在 Power Query 中合并后添加以下代码来解决这个问题,Table.ReplaceValue(referenceToAboveLine, null, 0,Text.Replace, {Analytics})但这导致查询花费了很长时间,我不得不超时。

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

标签: powerbipowerquery

解决方案


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

而不是Table.ReplaceValue,也许试试Table.Transform

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

推荐阅读