我有一个要求,我有两个这样的列。
ID Disease-Type
1 A
1 D
1 A
2 B
2 B
2 A
2 C
3 D
3 D
现在我想从“疾病类型”中选择一种疾病。我们说"A“。
我想在这张图中看到,
B 100%
C 100%
D 50%
B是100%,因为如果该id具有疾病B,则也具有疾病"A“(所选疾病)。C是100%,因为如果该id具有疾病C,则也具有疾病"A“(所选疾病)。
而D只有50%,因为在2个具有"D“的唯一ID (1,3)中,只有1个具有疾病类型"A”。
还需要注意的是,A不应该出现在输出视觉中。这将被绘制成针对疾病类型的图。
我如何使用DAX来做这件事。请给我解释一下VAR。
发布于 2019-06-18 22:56:26
您将希望使用一个断开连接的表作为切片器来选择A/B/C/D。您可以像这样创建一个计算表
Disease = VALUES ( Table1[Disease-Type] )
现在您需要一个度量值来读取您的切片器选择并计算所需的百分比。
Percent =
VAR SelectedType =
SELECTEDVALUE ( Disease[Disease-Type] )
VAR SelectedIDs =
CALCULATETABLE ( VALUES ( Table1[ID] ), Table1[Disease-Type] = SelectedType )
VAR CurrentIDs =
VALUES ( Table1[ID] )
RETURN
DIVIDE (
COUNTROWS ( INTERSECT ( SelectedIDs, CurrentIDs ) ),
COUNTROWS ( CurrentIDs )
)
第一个变量SelectedType
读取您的切片器选择,第二个变量SelectedIDs
是与该类型关联的set值列表(对于ID
A
,这是set {1, 2}
)。第三个变量CurrentIDs
是当前求值上下文中的ID
值的列表(例如,在矩阵可视化的行/列上)。对于D
,此设置为{1, 3}
。
最后,将交叉点的数量除以CurrentIDs
的数量,得到百分比。对于包含D
的行/列,这将是
|{1}| / |{1, 3}| = 1 / 2 = 50%
https://stackoverflow.com/questions/56648244
复制相似问题