首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DAX -计算一个人拥有"A“的可能性与该人拥有"B”的可能性的百分比

DAX -计算一个人拥有"A“的可能性与该人拥有"B”的可能性的百分比
EN

Stack Overflow用户
提问于 2019-06-18 19:36:05
回答 1查看 36关注 0票数 0

我有一个要求,我有两个这样的列。

代码语言:javascript
运行
复制
ID     Disease-Type
1       A
1       D
1       A
2       B
2       B
2       A
2       C
3       D
3       D

现在我想从“疾病类型”中选择一种疾病。我们说"A“。

我想在这张图中看到,

代码语言:javascript
运行
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-18 22:56:26

您将希望使用一个断开连接的表作为切片器来选择A/B/C/D。您可以像这样创建一个计算表

代码语言:javascript
运行
复制
Disease = VALUES ( Table1[Disease-Type] )

现在您需要一个度量值来读取您的切片器选择并计算所需的百分比。

代码语言:javascript
运行
复制
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的行/列,这将是

代码语言:javascript
运行
复制
|{1}| / |{1, 3}| = 1 / 2 = 50%
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56648244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档