количество столбцов в зависимости от строки - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь достичь чего-то простого, но я не могу обдумать это.У меня есть таблица с множеством строк и в одном конкретном столбце, строки имеют одинаковое значение.Мне понадобится дополнительный столбец, чтобы указать количество вхождений для каждого значения строки.Пример:

id  | name     | city     | additionalColumn
1   | Chris    | London   | 6
2   | Jane     | London   | 6
...
64  | Jerry    | Glasgow  | 3

По сути, в этой таблице у меня 6 имен с Лондоном в качестве города.Я хочу, чтобы в каждой строке, где city = London, было число вхождений в дополнительном столбце.

Как мне это сделать?Я попробовал это, но вместо этого я получаю общее количество строк, что не соответствует цели.Кажется, я не могу сослаться на текущую строку, по какой-то причине, только на весь столбец.

additionalColumn = COUNTROWS(FILTER(table, FIND(table[city], table[city],,0)>0))

Результат этого:

id  | name     | city     | additionalColumn
1   | Chris    | London   | 64
2   | Jane     | London   | 64
...
64  | Jerry    | Glasgow  | 64

Есть идеи?

Спасибо

1 Ответ

1 голос
/ 07 июня 2019

Попробуйте:

additionalColumn =
CALCULATE ( COUNTROWS ( MyTable ), ALLEXCEPT ( MyTable, MyTable[city] ) )

Как это работает: DAX итерирует вашу запись таблицы за записью.Внутри каждой записи нам нужно «видеть» всю таблицу, сохраняя текущий город. Это достигается с помощью ALLEXCEPT - мы сообщаем DAX показать нам всю таблицу (ALL), кроме города (мы хотим видеть толькогород записи, которую мы повторяем. В результате мы увидим всю таблицу, отфильтрованную по текущему городу (т. е. для Лондона мы увидим только 6 записей, где городом является Лондон).

...