PowerBI 显示没有数据的行

PowerBI show rows without data

我有两个 table:Table A 和 Table B。Table B 可以通过其列 fkA 引用 Table A。

示例数据集:

B Table
----------
id  |  fkA
1   |   1
2   |   2

A Table
id
-----------
1
2
3

在 table 视觉对象中,我可以显示 B1.id 和 A1.id 的连接,并将收到:

A.id | B.id
------------
1    |  1
2    |  2

没有对应B的A行不显示(不显示id为3的A)

我有两个问题:

  1. 是否可以添加 A 中没有相应 B 的那些行?
A.id | B.id
------------
1    |  1
2    |  2
3    |  empty <-- this row should be added
  1. 是否可以仅显示 A 中没有相应 B 的那些行?
A.id | B.id
------------
3    |  empty 

Power Query Editor 中,您可以尝试选项 Merge Queries to New 选项来创建一个新的 table您需要的数据如下所示-

展开新的 table 时,您将得到如下输出-

新 table-

的高级编辑器代码
let
    Source = Table.NestedJoin(#"Table A", {"id"}, #"Table B", {"id"}, "Table B", JoinKind.LeftOuter),
    #"Expanded Table B" = Table.ExpandTableColumn(Source, "Table B", {"id", "fkA"}, {"Table B.id", "Table B.fkA"})
in
    #"Expanded Table B"

鉴于您的数据样本:

选择 Table A 并单击 Merge Queries -> Merge Queries as New

选择Join Kind as "Full Outer"并点击Table A -> ID; Table B -> fkA:

点击 Expand 并选择您要显示的列(保留或不保留前缀):

最后,要仅过滤 empty rows,请单击 B.fkA column filter 并仅选择 null 值:

单击 OK 完成:

完整代码在这里:

let
    Source = Table.NestedJoin(A, {"ID"}, B, {"fkA"}, "B", JoinKind.FullOuter),
    #"Expanded B" = Table.ExpandTableColumn(Source, "B", {"ID", "fkA"}, {"B.ID", "B.fkA"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded B", each ([B.fkA] = null))
in
    #"Filtered Rows"