If statement 多if';表中计算场的s

If statement 多if';表中计算场的s,if-statement,tableau-api,If Statement,Tableau Api,请原谅这个绝对是新手的问题,但我对tableau非常陌生。 我想做的是创建一条消息,它基于哪些过滤器标志处于活动状态。所以,在psuedo代码中,我会这样做: message = '' if filter1 == 1: message += 'filter 1 is active' if filter2 == 1: message += ' filter 2 is active' return message 问题是,我甚至不知道如何执行多个if语句——我总是遇到语法错误。任何帮助都将

请原谅这个绝对是新手的问题,但我对tableau非常陌生。 我想做的是创建一条消息,它基于哪些过滤器标志处于活动状态。所以,在psuedo代码中,我会这样做:

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

问题是,我甚至不知道如何执行多个if语句——我总是遇到语法错误。任何帮助都将不胜感激。

以下是我如何完成类似任务的示例:

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在其网站上也有一个很棒的用户论坛。

以下是我如何完成类似任务的示例:

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在他们的网站上也有一个很棒的用户论坛。

我最后做的是为每个if语句创建一个计算字段。然后,我创建了另一个计算字段,它连接了我创建的第一组计算字段的所有输出。看起来有点像黑客,所以如果有人知道一种更优雅的方法(让一系列计算字段组成一个计算字段看起来非常笨拙),我很乐意把回答的要点传递给大家。

我最后做的是为每个If语句创建一个计算字段。然后,我创建了另一个计算字段,它连接了我创建的第一组计算字段的所有输出。看起来有点像黑客,所以如果有人知道一种更优雅的方法(让一系列计算字段组成一个计算字段看起来非常笨拙),我很乐意给出答案。

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

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

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

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

这是tableau:这是tableau:看起来需要添加一个新标签,即“tableau”。不是其他的。如果。我要做的是为每个if语句创建多个计算字段,然后再创建一个连接所有if语句的计算字段。@Ramy。我想我不明白引用一个字段或表达式内部的另一个计算表达式之间有什么区别。此外,如果您查看我的代码,我会像您一样引用不同的对象(计算)。在你的例子中。简单地说,我想我不明白你想做什么,因为我的例子与你的玩具相匹配example@Btibert3,不同之处在于,我希望对字符串进行累加,并为每个等于1的实例添加字符串。因此,如果过滤器1和2都设置为1,那么我希望文本为“过滤器1过滤器2”。如果只将筛选器1设置为1,则我希望将返回值设置为“筛选器1”。这有意义吗?对于elseIF,它将在第一个计算结果为true的标记处停止,并跳过所有其他标记。看起来需要添加一个新标记,即“Tableau”。而不是elseIF。如果。我要做的是为每个if语句创建多个计算字段,然后再创建一个连接所有if语句的计算字段。@Ramy。我想我不明白引用一个字段或表达式内部的另一个计算表达式之间有什么区别。此外,如果您查看我的代码,我会像您一样引用不同的对象(计算)。在你的例子中。简单地说,我想我不明白你想做什么,因为我的例子与你的玩具相匹配example@Btibert3,不同之处在于,我希望对字符串进行累加,并为每个等于1的实例添加字符串。因此,如果过滤器1和2都设置为1,那么我希望文本为“过滤器1过滤器2”。如果只将筛选器1设置为1,则我希望将返回值设置为“筛选器1”。这有意义吗?对于elseIF,它将在第一个计算结果为true的值处停止,并跳过所有其他值。