我有一个这样的两列的要求。
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解释我。
答案 0 :(得分:2)
您需要将断开连接的表用作切片器来选择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
是与该类型关联的ID
值的列表(对于选择A
,这是设置{1, 2}
)。第三个变量CurrentIDs
是当前评估上下文中(例如,在矩阵视觉的行/列上)的ID
值的列表。对于D
,此集合为{1, 3}
。
最后,将相交的计数除以CurrentIDs
的计数即可得出百分比。对于带有D
的行/列,应为
|{1}| / |{1, 3}| = 1 / 2 = 50%