If 语句在 Spotfire 中不起作用

If statement not working in Spotfire

我希望你能帮助我尝试在 Spotfire 中使用 If 语句。我想要实现的是这个

我有 13 个唯一数字,我想说的是,如果列 [GL_ACCOUNT(2)] = 这 13 个数字中的任何一个,那么 return 我 "Not EFPIA" 在我的新计算列 'GL Account Filter'

它最多适用于两个数字,但一旦我增加数字的数量,该公式将不起作用。

我的代码如下。一如既往,非常感谢任何帮助

if([GL_ACCOUNT(2)]="0063304000","0063401000", "0062001000", "Not EFPIA") 

如果不使用 TERRJSIronPY,您必须明确地 OR 将它们放在一起。我认为您正在尝试将 TSQL 中的 IN 子句作为 explained here,但我不知道 Spotfire.

中的该功能
if([GL_ACCOUNT(2)]="0063304000" or 
   [GL_ACCOUNT(2)]="0063401000" or 
   [GL_ACCOUNT(2)]="0062001000", "Not EFPIA") 

您也可以使用 CASE 来完成此操作,如果这对您来说更清晰的话。

case
   when [GL_ACCOUNT(2)] = "0063304000" then "Not EFPIA"
   when [GL_ACCOUNT(2)] = "0063401000" then "Not EFPIA"
   when [GL_ACCOUNT(2)] = "0062001000" then "Not EFPIA"
   else NULL
end

或者用 OR.....

case
   when [GL_ACCOUNT(2)] = "0063304000" OR
        [GL_ACCOUNT(2)] = "0063401000" OR
        [GL_ACCOUNT(2)] = "0062001000" then "Not EFPIA"
   else NULL
end

表达式可以作为

if([GL_ACCOUNT(2)] in "0063304000","0063401000", "0062001000", "Not EFPIA")