кратные if для вычисляемого поля в таблице - PullRequest
1 голос
/ 28 марта 2011

прошу прощения за абсолютно новый вопрос, но я очень плохо знаком с таблицей.я хотел бы создать сообщение, основанное на том, какие флаги фильтра активны.Итак, в коде psuedo я бы сделал что-то вроде этого:

message = ''
if filter1 == 1:
  message += 'filter 1 is active'
if filter2 == 1:
  message += ' filter 2 is active'
return message

проблема в том, что я даже не уверен, как сделать несколько операторов if - я продолжаю получать синтаксическую ошибку.Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

3 голосов
/ 28 марта 2011

Вот пример того, как я совершил нечто подобное:

IF [ZAVUFA1_FED_COLL_CHOICE_1] = 'xxxxx' THEN 1
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_2] = 'xxxxx' THEN 2
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_3] = 'xxxxx' THEN 3
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_4] = 'xxxxx' THEN 4
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_5] = 'xxxxxx' THEN 5
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_6] = 'xxxxx' THEN 6
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_7] = 'xxxxxx' THEN 7
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_8] = 'xxxxxx' THEN 8
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_9] = 'xxxxx' THEN 9
ELSEIF [ZAVUFA1_FED_COLL_CHOICE_10] = 'xxxxxx' THEN 10
ELSEIF ISNULL([ZAVUFA1_FED_COLL_CHOICE_1]) THEN 99
END

Как бы я ни любил stackoverflow, у Tableau также есть отличный форум для пользователей на их сайте.

1 голос
/ 28 марта 2012

Вы бы создали вычисляемое поле под названием message с этим кодом:

IF filter1 = 1 THEN 'filter 1 is active' END
+ IF filter2 = 1 THEN ' filter 2 is active' END
0 голосов
/ 28 марта 2011

В итоге я создал вычисляемое поле для каждого оператора if. Затем я создал еще одно вычисляемое поле, которое объединяет все выходные данные из каждого первого набора вычисленных полей, которые я создал. Похоже на хакерство, так что если кто-нибудь знает более элегантный способ сделать это (создание вычисляемого поля из ряда вычисленных полей кажется ужасно грязным), я был бы рад передать баллы за ответы.

...