Power BI - мне нужна формула "countif" для просмотра уникальных записей в строке / столбце - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю в Power BI чуть более недели, и теперь у меня возникла первая проблема.

Мне нужен способ сделать то же, что и в формуле Excel ниже..

В Power Bi у меня ОДИН стол.Я хочу посчитать уникальные «Распределенные заказы» в столбце «B»

Но я хочу посчитать их только один раз .. Итак, при первом обнаружении он считается как 1 Далее я вижу, что он считаетсякак 2 или 3 или 4 или более ..

Таким образом, формула говорит: «если считать больше, чем один раз, то вернуть« X », в противном случае вернуть« 1 », а затем оператор IF скажет, если больше 1, вернуть 0else return 1

У меня много тысяч строк, и мне нужно идентифицировать каждую из них как уникальную или нет .. Но я не могу найти правильную комбинацию формул DAX для этого. Я посмотрел наCOUNTDISTINCT, CALCULATE, FILTERS, COUNTROWS и многие другие. Они могут быть правильными для использования, но мне не удалось найти правильный синтаксис.

Многие из опробованных мной формул DAX либо возвращают ТОЛЬКО "1", либоТОЛЬКО «0» или они возвращают общую сумму уникальных заказов ..

Формула Excel:

Row 2 = IF(B2="";0;IF(COUNTIF(B$1:$B2;B2)>1;0;1))
Row22 = IF(B22="";0;IF(COUNTIF(B$1:$B22;B22)>1;0;1))
Row32 = IF(B32="";0;IF(COUNTIF(B$1:$B32;B32)>1;0;1))

1 Ответ

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

То, что вы ищете, это вычисляемый столбец, а не мера.Также вам необходимо определить порядок, в котором должен читаться столбец [Порядок разделения].

Это можно сделать, добавив столбец индекса в Power Query (вкладка «Добавить столбец»).После этого добавьте этот вычисляемый столбец:

IsFirstOccurence =
IF (
    COUNTROWS (
        FILTER (
            'table',
            'table'[Split Order] = EARLIER ( 'table'[Split Order] )
                && 'table'[Index] <= EARLIER ( 'table'[Index] )
        )
    ) = 1,
    1,
    0
)

Результат будет выглядеть следующим образом:

enter image description here

...