DAX, используя SWITCH и SELECTEDVALUE для вывода на основе выбора среза - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть столбец, который показывает количество часов старения ("AgingHours") для "Orders". Я хочу создать еще один столбец с именем «Aged», который будет = 1, если значение «AgingHours» больше выбранного значения в слайсере, в противном случае - 0. Пользователь может выбрать «1 Hr», «2 Hrs», или «3 часа» от слайсера.

Например:

Создан слайсер под названием AgingDate [HourDay]. Пользователь выбирает «2 часа» из среза (что будет означать, что в столбце «AgingHours», который>> 2, будет выведено значение 1 в столбце «Aged». Выходные данные в столбце «возрасте» ниже будут:

Order AgingHours Aged
A          1       0
B          2       1

Я пытался создать вычисляемый столбец, используя оператор IF на основе выбора, но каждое значение показывает 0.

Aged = 
SWITCH (
    SELECTEDVALUE( AgingDate[HourDay] ),
    "1 Hr", IF ( [AgingHours] >= 1, 1, 0 ),
    "2 Hrs", IF ( [AgingHours] >= 2, 1, 0 ),
    "3 Hrs", IF ( [AgingHours] >= 3, 1, 0 ),
     0
    )

1 Ответ

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

Расчетные столбцы оцениваются только один раз при загрузке данных. Поэтому они не могут отвечать на какие-либо срезы или фильтры на странице вашего отчета.

В частности, SELECTEDVALUE( AgingDate[HourDay] ) возвращает пустое значение (поскольку оно не знает, какое единственное значение вы выбрали), что означает, что ваше SWITCH принимает else значение 0 .

Если вы используете тот же код в качестве меры, похоже, он будет работать нормально, если вы также используете имя таблицы, когда ссылаетесь на [AgingHours].

...