根据另一个表中的多项选择在 PowerBI 中创建一个表

问题描述 投票:0回答:1

我有下表,将人员与活动相关联:

姓名 年龄 骑车人 独木舟运动员 徒步旅行者 跑步者
比尔 45 X X X
苏西 28 X
弗雷德 33 X X
蒂斯 28 X X
67 X X

我希望有一个显示姓名和年龄的表格,用户可以在其中选择一项或多项活动。

例如,某人可以选择“徒步旅行者”,表格将显示 Bill、Thys 和 Lin。 如果他们选择“徒步旅行者”和“跑步者”,他们就会得到比尔和林。

我不知道该怎么做。 我愿意接受有关如何构建数据表以使这成为可能的建议。 我可以将各个活动列拖入作为视觉过滤器,但我想要一些对最终用户来说更容易的东西。

powerbi
1个回答
0
投票

将数据加载到PBI时,我将X更改为1,将空值更改为0。 然后根据 Cyclist、Canoeist、Hiker 和 Runner 列,我对 PQ 中的数据进行了逆透视:

enter image description here

enter image description here

然后仅保留 Participates = 1 的行:

enter image description here

完整的PQ代码:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcsrMyVHSUTIxBRKGQGwApQ2VYnWilYJLizNTgTwjCyQpAzAGSbsVpaYAOcbGcE3IsiEZlcXoeg3hsj6ZeUC2mTlcC9zeWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Age = _t, Cyclist = _t, Canoeist = _t, Hiker = _t, Runner = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Age", Int64.Type}, {"Cyclist", Int64.Type}, {"Canoeist", Int64.Type}, {"Hiker", Int64.Type}, {"Runner", Int64.Type}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Name", "Age"}, "Attribute", "Value"),
    #"Renamed Columns" = Table.RenameColumns(#"Unpivoted Columns",{{"Attribute", "Activity"}, {"Value", "Particpates"}}),
    #"Filtered Rows" = Table.SelectRows(#"Renamed Columns", each ([Particpates] = 1))
in
    #"Filtered Rows"

然后在切片器中使用 Activity :

enter image description here

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.