Union 和 if with value present in other table Power BI

Union and if with value present in other table Power BI

我有 3 个 table。

第一个是商品table

第二个也是产品table,但第一个也有一些产品。

最后,我有一个销售 table。

我想将两个产品 table 合并为一个新产品,如果一个产品在 'Sales' 中,则添加一个包含客户名称的新列。

这样的结果。

我想在 Power BI 中执行此操作,但找不到在查询编辑器中执行此操作的解决方案。

有什么想法吗?

谢谢。

这里我假设 ID 是跨越 table 的主键。

首先,您可以将两个 Product table 附加(即合并)为一个:

然后,删除 ID 列中的重复项:

现在,您可以在 ID 列上将查询与 Sales table 合并(即加入):

仅展开 Sales table 和 select ClientName 列:

最后,将空值替换为 Unsold:

(是的,字符串 null 表示 NULL 很奇怪,但它是这样工作的)

最终结果:

完整的M代码供您参考:

let
    Source = Table.Combine({Product, Product2}),
    #"Removed Duplicates" = Table.Distinct(Source, {"ID"}),
    #"Merged Queries" = Table.NestedJoin(#"Removed Duplicates",{"ID"},Sales,{"ID"},"Sales",JoinKind.LeftOuter),
    #"Expanded Sales" = Table.ExpandTableColumn(#"Merged Queries", "Sales", {"ClientName"}, {"ClientName"}),
    #"Replaced Value" = Table.ReplaceValue(#"Expanded Sales",null,"Unsold",Replacer.ReplaceValue,{"ClientName"})
in
    #"Replaced Value"