Рассчитать стоимость в зависимости от нескольких условий - PullRequest
0 голосов
/ 22 октября 2019

enter image description here У меня есть поле Grp_ids, которое мне нужно назначить "Pass" или "Fail" на основе результатов measure_ids

Например: если один из measure_ids вгруппа потерпела неудачу, я хочу, чтобы вся группа потерпела неудачу.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Это должно сработать -

IIF({ FIXED [Grp_ids]: SUM(IIF([Measure_Results] = 'Pass',0,1)) }>0,'Fail','Pass')

Суммирование сбоев по GRP_ID. Если сумма больше 0 (GRP_ID содержит Fail), тогда Fail полностью GRP_ID.

0 голосов
/ 01 ноября 2019

Определите Grp_Result как MIN([Measure_Results] = "Pass")

Это будет True, если Measure_Results = "Pass" для каждой строки данных для выбранных измерений (Grp_Ids и Measure_is в вашем примере). Если у вас могут быть нулевые значения в столбце Measure_Results, и если вы хотите обрабатывать эти значения как Fail, вместо этого будет использоваться MIN(IFNULL([Measure_Results] = "Pass"), False)

. Это работает, потому что Tableau рассматривает True как большее, чем False. Таким образом, MAX () выполняется, если удовлетворено для КАЖДОЙ строки данных, а MAX () выполняется, если удовлетворено для ЛЮБОЙ строки данных.

Вы можете еще немного упростить использование логических значений вместо строк, чтобы начать спредставляет, прошла запись или не прошла.

...