2017-02-09 25 views
1

Надеюсь, вы можете помочь. Я пытаюсь использовать инструкцию If в Spotfire. То, что я пытаюсь достичь, этоЕсли инструкция не работает в Spotfire

У меня есть 13 уникальных номеров, и я пытаюсь сказать, что если столбец [GL_ACCOUNT(2)] = любой из этих 13 номеров, верните мне «Not EFPIA» в моем новом вычисляемом столбце «GL Account» Фильтр '

Он работает до двух чисел, но как только я увеличиваю количество чисел, формула не будет работать.

Мой код ниже. Как всегда любая помощь очень ценится

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

ответ

1

без использования TERR или JS или IronPY вам придется явно OR их вместе. Я думаю, вы пытаетесь сделать что-то вроде предложения IN в TSQL как 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 
+0

scsimon: Приветствия спариваться это работает отлично. –

+0

Не беспокойтесь, товарищ, рад, что это сработало для вас @PhilipConnell – scsimon

0

Выражение может быть использовано в качестве

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