Дубликаты флага Power BI - PullRequest
       40

Дубликаты флага Power BI

0 голосов
/ 07 ноября 2018

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

Я использовал этот подход, чтобы добавить идентификатор в таблицу, затем снова добавить идентификатор и сосчитать идентификатор, а затем отфильтровать визуальный элемент для счетчика> 1, который хорошо помечает дублированные записи. Тем не менее, я хочу настроить оповещения, поэтому я хочу настроить вычисление, которое я могу закрепить на приборной панели, настроить и предупредить. Борьба с настройкой правильного расчета.

Мои данные выглядят так:

enter image description here

Так что я бы ожидал, что ID 3 будет считаться дублированным. Пробовал это, но с ошибкой "EARLIER / EARLIEST относится к более раннему контексту строки, который не существует".

Measure = IF(
          CALCULATE(
                 COUNTA(Table1[ID]),
                 FILTER(Table1, Table1[ID] = EARLIER(Table1[ID]))
           )>1, 
           0,
           1
     )

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Ваш код работает как вычисляемый столбец, но EARLIER не работает точно так же, как мера, так как отсутствует внутренний контекст строки. Если вам нужна мера, попробуйте заменить EARLIER на MAX или другую функцию агрегирования.

Measure = IF(
          CALCULATE(
                 COUNTA(Table1[ID]),
                 FILTER(Table1, Table1[ID] = MAX(Table1[ID]))
           )>1, 
           0,
           1
     )
0 голосов
/ 07 ноября 2018

Вот несколько идей использования DAX. Вы можете добавить вычисляемый столбец, чтобы отметить дубликаты. Как это:

enter image description here

DuplicateFlag =
IF (
    COUNTROWS ( FILTER ( 'Table1', 'Table1'[ID] = EARLIER ( Table1[ID] ) ) )
        > 1,
    1,
    BLANK ()
)

Тогда вы могли бы использовать следующую меру, чтобы рассчитать количество дубликатов и поместить его в визуальную карту.
Number of Duplicates = CALCULATE(DISTINCTCOUNT('Table1'[Name]),'Table1'[DuplicateFlag] = 1)

И такая мера, чтобы показать количество каждого дубликата в матричном визуале.
count per duplicate = SUM([DuplicateFlag]) enter image description here

0 голосов
/ 07 ноября 2018

Это решение PowerQuery (язык "M"). Учитывая, что значения для проверки находятся в списке с именем «IdList», приведенный ниже код возвращает новый список с именем «DupList» только с дублированными значениями.

let
    IdList = {3,4,3,6,7,3,8,9,4,10,11},
    DupList = List.Distinct(List.Difference(IdList,List.Distinct(IdList)))
in
    DupList

В этом примере DupList равен {3,4}, единственные значения, которые дублируются. Теперь вы можете делать с этим новым списком все, что захотите.

Возможно, вы это знаете, но в «M» вы можете создать список, просто ссылаясь на имя столбца таблицы: new_list = table_name [column_name]

Надеюсь, это поможет

...