Tableau api 表过滤器公式

Tableau api 表过滤器公式,tableau-api,Tableau Api,我正在尝试筛选只包含BL或CL的工作组名称,因此我使用了以下公式 STARTSWITH([wrkgrp_shrt_nm], "BL") or STARTSWITH([wrkgrp_shrt_nm], "CL" ) if right([wrkgrp_shrt_nm],2) = 'BL' then 1 elseif right([wrkgrp_shrt_nm],2) = 'CL' then 1 elseif right([wrkgrp_shrt_nm],2) then 0 end 我得到了一张绿

我正在尝试筛选只包含BL或CL的工作组名称,因此我使用了以下公式

STARTSWITH([wrkgrp_shrt_nm], "BL") or STARTSWITH([wrkgrp_shrt_nm], "CL" )
if right([wrkgrp_shrt_nm],2) = 'BL' then 1 elseif
right([wrkgrp_shrt_nm],2) = 'CL' then 1 elseif
right([wrkgrp_shrt_nm],2) then 0
end
我得到了一张绿色的小支票,但当我点击apply时,它是空白的,没有任何东西可以通过

我尝试了另一个公式

STARTSWITH([wrkgrp_shrt_nm], "BL") or STARTSWITH([wrkgrp_shrt_nm], "CL" )
if right([wrkgrp_shrt_nm],2) = 'BL' then 1 elseif
right([wrkgrp_shrt_nm],2) = 'CL' then 1 elseif
right([wrkgrp_shrt_nm],2) then 0
end
但我只得到一个错误


有什么建议吗?

为了澄清,您要求的是“包含BL或CL”,但您的公式指定的starts将为true,即您的字段[wrkgrp\u shrt\u nm]以字符串“BL”或字符串“CL”开头

如果您想要“包含”,可以使用查找:

FIND([wrkgrp_shrt_nm], 'BL' ) > 0 OR FIND([wrkgrp_shrt_nm], 'CL' ) > 0
在条件字段中不能使用
IF
,但可以使用inline IF(
IIF
),但在您的情况下不需要使用

编辑: 我对
IF
的评论可能是完全错误的(因为我在Tableau中还是新手),但我在过滤器的条件字段中尝试了
IF
(正如OP所要求的),但我无法使它工作。然而,我在计算字段中始终使用IF。我会再试一次…

如果您想要“包含”,您可以调用contains()

执行与Fred发布的find()解决方案相同的操作,只是在本例中更易于阅读。我不知道弗雷德为什么说如果,你就不能使用
。我一直使用IF,没有任何问题

顺便说一句,如果您想知道,如果字段名不包含空格或标点符号,并且函数名不区分大小写,则字段名周围的方括号是可选的。

我能够在多次尝试后使STARTSWITH([wrkgrp_shrt_nm],“BL”)或STARTSWITH([wrkgrp_shrt_nm],“CL”)工作,用它作为T/F过滤器,它做到了