#powerbi #dax
#пауэрби #дакс
Вопрос:
Я пытаюсь отфильтровать таблицу с помощью фильтра с несколькими выборками.
DAX: Для выбора значений в выбранном фильтре (Multi)
SelectedEnvironments =
CONCATENATEX (
VALUES ( Environments[ShortEnvName] ),
Environments[ShortEnvName],
", "
)
Результат:
Но при попытке отфильтровать таблицу на основе приведенной выше переменной фильтра ничего не возвращает.
ДАКС:
Aggregated Usage =
VAR __SelectedEnvironments =
CONCATENATEX (
VALUES ( Environments[ShortEnvName] ),
Environments[ShortEnvName],
", "
)
RETURN
CALCULATETABLE (
LastestDBUsage,
LastestDBUsage[Environment] IN { __SelectedEnvironments }
)
Если я жестко закодирую значения внутри IN
operator, это будет работать нормально. Что я делаю не так? Нужно ли мне форматировать строку для IN
operator
DAX (отлично работает с жесткими значениями кода)
Совокупное использование =
VAR __SelectedEnvironments =
CONCATENATEX (
VALUES ( Environments[ShortEnvName] ),
Environments[ShortEnvName],
", "
)
RETURN
CALCULATETABLE (
LastestDBUsage,
LastestDBUsage[Environment] IN { "DEV", "TST" }
)
Ответ №1:
На самом деле IN
оператор работает с таблицами, CONCATENATEX
возвращает строку.
{ __SelectedEnvironments }
возвращает таблицу с одной строкой, состоящей из одного столбца, например, «DEV, TST»
чтобы заставить код работать, его можно было бы изменить, чтобы вместо него использовалась таблица, например
Aggregated Usage =
VAR __SelectedEnvironments = VALUES ( Environments[ShortEnvName] )
RETURN
CALCULATETABLE (
LastestDBUsage,
LastestDBUsage[Environment] IN __SelectedEnvironments
)