У меня есть столбец, который показывает количество часов выдержки («AgingHours») для «Заказы». Я хочу создать еще один столбец с именем «Aged», который будет = 1, если значение «AgingHours» больше, чем выбранное значение в срезе, в противном случае 0. Пользователь может выбрать «1 час», «2 часа», или «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
oilers128 12 Ноя 2018 в 22:22

1 ответ

Лучший ответ

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

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

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

3
Alexis Olson 12 Ноя 2018 в 20:21