DAX мера, которая возвращает различное количество значений, которые имеют дубликаты в таблице - PullRequest
0 голосов
/ 04 июня 2019

Совершенно новый и самоучка с DAX.Я веду журнал точности, который отслеживает входящие приложения (Application [Application_ID]) и ошибки, допущенные при обработке этого приложения (Error_Log [Application_ID]).

Я хочу найти количество приложений, содержащих более одной ошибки.Например, если в 10 приложениях есть ошибки, в 6 из этих приложений есть 1 ошибка, а в остальных - 2 или более ошибок, я хочу вернуть значение 4.

Я пытаюсь избежать вычисляемого столбца (как столбец «Multiple_Errors» ИСТИНА / ЛОЖЬ), поскольку время его обновления уже длиннее, чем хотелось бы, но если это неизбежно, его можно разместить.

Мы смогли создать формулу Excel с помощью SUMPRODUCT для очень высокого уровня сводки информации, но я хочу больше детализации, чем может дать мне эта формула.

Онлайн-поиск привел только к поиску статей о том, как подсчитать количество дубликатов, пометить дубликаты, удалить дубликаты или выполнить какую-либо другую задачу, где мне нужно подсчитать различное количество значений, которые были продублированы внутритаблица.

Я пробовал несколько разных мер DAX, но все они дали неверные результаты.Например ...

    =
CALCULATE (
    DISTINCTCOUNT ( Error_Log[Appplication_ID] ),
    FILTER ( Error_Log, COUNTA ( Error_Log[Appplication_ID] ) > 1 )
)

Детализация этого результата показывает, что перетаскиваются все приложения с ошибками, а не только те, у которых больше одной ошибки.

После воспроизведенияс несколькими вариантами я не смог найти решение.Любая помощь / указатели / направления будут с благодарностью!

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Ваша мера в порядке и работает как определено.Пожалуйста, см. Прикрепленный экран.

enter image description here

Приложение ID 100 имеет 4 ошибки типа 1, 101 имеет 2 ошибки типа 2 и 1 типа 3, но из-заразличный счет, у них есть 1 каждый.

102 имеет единственный тип 3, но мы используем тип ошибки для группировки журнала, тип 3 показывает два счета (1 для 102 и 101)

Примечаниечто условие COUNTA (Error_Log [Appplication_ID])> 1 было выполнено для 102 также из-за группировки столбцов.

Мы не видим Тип 6 в сводной таблице справа из-за COUNTA (Error_Log [Appplication_ID])> 1.

Таким образом, хотя мера работает, мы можем не понять интерпретацию результата или использовать правильный DAX для требования.

0 голосов
/ 04 июня 2019

Я думаю, вы ищете что-то вроде этого:

Measure =
COUNTROWS (
    FILTER (
        SUMMARIZE (
            Error_Log,
            Error_Log[Application_ID],
            "count", COUNTROWS ( Error_Log )
        ),
        [count] > 1
    )
)

Функция SUMMARIZE возвращает виртуальную сводную таблицу со счетчиком каждого Application_ID в столбце с именем «count». Затем внешняя функция COUNTROWS возвращает количество строк в виртуальной таблице, где [count] больше 1.

...