#powerbi #dax #powerbi-desktop
#powerbi #dax #powerbi- рабочий стол
Вопрос:
Я новичок в DAX.
Моя модель содержит одну вызываемую таблицу Notices
. Notices содержит 235 969 строк.
Notices содержит поля CustomerID
, NoticeNo
и NoticeStatus
.
Когда я устанавливаю контекст фильтра на 'CANCL' Notices[NoticeStatus]
, я вижу, что есть 3 уведомления, которые имеют CANCL
статус.
Таким образом, приведенная ниже мера оценивается как 3, поскольку каждое из оставшихся уведомлений принадлежит 3 отдельным клиентам. Тем не менее, я хотел бы основывать агрегат на нефильтрованной таблице, но отфильтровывать строки (после агрегирования) на основе идентификаторов клиентов, которые остаются в контексте фильтра и [ObCount] = 1
. В этом случае мера должна быть оценена в 0 или BLANK()
, поскольку ни один из идентификаторов пользователя в контексте фильтра не остается после фильтрации [ObCount] = 1
.
Customers with Single Notice Only =
COUNTROWS (
FILTER (
SUMMARIZECOLUMNS (
Notices[CustomerID],
Notices,
"ObCount", [All Notices Outstanding]
),
[ObCount] = 1
)
)
[All Notices Outstanding] = COUNTROWS(Notices)
Ответ №1:
Вы должны быть в состоянии сделать это, применив отфильтрованную таблицу в качестве аргумента фильтра таблицы к Notices
использованию CALCULATE:
Customers with Single Notice Only =
CALCULATE (
COUNTROWS ( Notices ),
FILTER (
SUMMARIZECOLUMNS (
Notices[CustomerID],
ALL ( Notices ),
"ObCount", [All Notices Outstanding]
),
[ObCount] = 1
)
)
Обратите внимание на использование ALL для удаления фильтра состояния фильтра при подведении итогов.
Комментарии:
1. Это работает. Я все еще пытаюсь разобраться в функции вычисления.