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)
我有两个问题:
- 是否可以添加 A 中没有相应 B 的那些行?
A.id | B.id
------------
1 | 1
2 | 2
3 | empty <-- this row should be added
- 是否可以仅显示 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"
我有两个 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)
我有两个问题:
- 是否可以添加 A 中没有相应 B 的那些行?
A.id | B.id
------------
1 | 1
2 | 2
3 | empty <-- this row should be added
- 是否可以仅显示 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"