这需要一些信息。
我有一个用户ID列表。我还具有20个可以与用户关联的模块,每个模块具有可以计数的会话数。
我目前有一个这样的表:
UserID Module Count
A 1 3
A 2 3
B 1 2
B 3 2
C 1 3
C 2 3
C 3 3
我要实现的目标如下:
对于每个用户ID,我需要考虑所有20个模块,检查每个模块是否有一行。现在设置表的方式是,当用户在模块上没有任何东西时,我不会在该模块上没有涉及到的行。如果缺少一行,则应为缺少的模块创建一行,并将Count设置为0。
因此,假设上表仅考虑3个模块,则需要将其转换为:
UserID Module Count
A 1 3
A 2 3
A 3 0
B 1 2
B 2 0
B 3 2
C 1 3
C 2 3
C 3 3
我该怎么做?
我通过将每个模块的另一张表分组来获得第一行,其中的计数是另一张表上的行数。但是,这不能解决缺少的模块,我仍然需要将其报告为0。
答案 0 :(得分:0)
您可以尝试:
NewTable =
VAR T1 = SUMMARIZECOLUMNS ( Table1[UserID] )
VAR T2 = SUMMARIZECOLUMNS ( Table1[Module] )
RETURN
ADDCOLUMNS (
CROSSJOIN ( T1, T2 ),
"Count",
LOOKUPVALUE (
Table1[Count],
Table1[UserID], [UserID],
Table1[Module], [Module]
) + 0
)
有关有效的PBIX文件示例,请参见https://pwrbi.com/so_55398321/