Power BI DAX - подсчет количества записей, если содержит строку из справочной таблицы - PullRequest
0 голосов
/ 12 ноября 2018

Как написать функцию DAX для подсчета количества ячеек в столбце, содержащем строку, из списка строк в справочной таблице.

Например, представьте, что у меня есть таблица предметов и справочная таблица:

Таблица предметов:

id    items_list
1     hats, jar, shoes
2     Fedora, key, Pens
3     Fedora, jars, Pens
4     baseball cap, Sandals

Таблица справочных типов:

id     hat_types    shoe_types
1      hat          shoes
2      fedora       sandals
3      cap   

Я хотел бы написать функцию DAX, которая принимает строки из таблицы Reference Type и проверяет, содержится ли строка в таблице Items. А если так, то посчитайте количество строк.

Например:

Просматривая, содержатся ли строки в столбце hat_types в items_list, я могу сосчитать 4 строки.

Просматривая, содержатся ли строки в столбце shoe_types в items_list, я могу сосчитать 2 строки (первую и последнюю строку).

Как я могу сделать это в Power BI?

Любая помощь, которую вы можете оказать, высоко ценится!

Спасибо

1 Ответ

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

Вы можете сделать что-то вроде этого:

ShoeCount = 
SUMX(Items,
    IF(
        SUMX(ReferenceType,
            IF(
                LEN(SUBSTITUTE(LOWER(Items[items_list]), ReferenceType[shoe_types], ""))
                    < LEN(Items[items_list]),
                1
            )
        ) > 0,
        1
    )
)

Это повторяет каждую строку в таблице Items и проверяет, является ли какая-либо из shoe_types подстрокой items_list. Если это так, то вы добавляете один к счету.

Я проверяю подстроку, пытаясь заменить любое вхождение строки shoe_types пустой строкой "" и проверяя, не уменьшило ли это всю строку items_list.

Примечание: LOWER преобразует строку в нижний регистр для лучшего соответствия.


Мера подсчета шляп может быть выполнена аналогично. Все, что вам нужно сделать, это изменить shoe_types на hat_types.

...