DAX - вычислите% вероятности человека, у которого есть «А», с шансами, что у человека также есть «Б» - PullRequest
0 голосов
/ 18 июня 2019

У меня есть требование, когда у меня есть два столбца, как это.

ID     Disease-Type
1       A
1       D
1       A
2       B
2       B
2       A
2       C
3       D
3       D

А теперь я хочу выбрать заболевание по типу болезни. Скажем «А».

Я хочу видеть на графике вот так:

B    100%
C    100%
D    50%

B составляет 100%, потому что если у этого идентификатора есть заболевание B, то также имелось заболевание "A" (выбранное заболевание). С составляет 100%, потому что, если у этого человека было заболевание С, то также имелось заболевание «А» (выбранное заболевание).

, в то время как D равно 50%, потому что из 2 уникальных идентификаторов (1, 3), у которых была только "D", 1 имеет тип болезни "A".

Также отметим, что A не должно быть видно в выходном визуале. который будет нанесен на график против типа заболевания.

Как я могу использовать DAX для этого. Пожалуйста, объясните мне VAR.

1 Ответ

2 голосов
/ 18 июня 2019

Вы хотите, чтобы отключенная таблица использовалась в качестве слайсера для выбора 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%
...