在tableau中计算字段的多个if

时间:2011-03-28 14:31:51

标签: if-statement tableau

请原谅这个绝对新手的问题,但我对画面很新。 我想要做的是根据哪些过滤器标志处于活动状态来创建消息。所以,在伪代码中,我会做这样的事情:

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

问题是,我甚至不确定如何做多个if语句 - 我不断收到语法错误。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

以下是我如何完成类似工作的示例:

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 :(得分:1)

您将使用以下代码创建一个名为message的计算字段:

IF filter1 = 1 THEN 'filter 1 is active' END
+ IF filter2 = 1 THEN ' filter 2 is active' END

答案 2 :(得分:0)

我最终做的是为每个if语句创建一个计算字段。然后我创建了另一个计算字段,该字段连接了我创建的第一组计算字段的所有输出。看起来有点像黑客,所以如果有人知道更优雅的方式这样做(使一系列计算字段的计算字段看起来非常糟糕)我会很高兴传递回答点。