Tableau api 将聚合不同计数放入else if表

Tableau api 将聚合不同计数放入else if表,tableau-api,Tableau Api,因此,我想在calculate字段中输入,如果包含所选产品,那么它将显示该产品的计数顺序数(交易id)(在本例中,使用count distinct for order\u match\u id(每个交易的id) 我在用这个 IF CONTAINS([Selected Product], [Name]) THEN (CNTD([Order Match Id]) ELSE NULL END 但是它说,期望从字符47开始的表达式的结尾偏执 重点是,我想做一些其他的if条件,如果条件为true,则显

因此,我想在calculate字段中输入,如果包含所选产品,那么它将显示该产品的计数顺序数(交易id)(在本例中,使用count distinct for order\u match\u id(每个交易的id)

我在用这个

 IF CONTAINS([Selected Product], [Name])
THEN (CNTD([Order Match Id])
ELSE NULL
END
但是它说,
期望从字符47开始的表达式的结尾偏执


重点是,我想做一些其他的if条件,如果条件为true,则显示id transaction的count distinct,以提供多少事务

即使您可能希望在语句中添加更多逻辑,您也应该记住,不能将聚合值与非聚合值混合使用

基本上,你的公式应该是这样的:

COUNTD(IF CONTAINS([Selected Product], [Name])
THEN [Order ID]
ELSE NULL
END)

这样做,“首先”测试每一行的条件,“然后”使用COUNTD(而不是cntd)聚合值

在tableau社区发布此问题后,这是迄今为止最好的答案

它们可能不是正确的维度,但请参见atta和countd的用法

IF CONTAINS(attr([Kategori]), attr([Name]))

 THEN COUNTD([Order Match Id])

 ELSE NULL

 END

您有一个额外的“(“在第二行中,在then和CNTDO之间,您的意思是?如果包含([所选产品],[名称])那么((CNTD([订单匹配Id]))或者为NULL END?如果是,那么它仍然是相同的erorr SIR或者您的意思是then CNTD([订单匹配Id])?如果是,那么它的未知函数CNTD被调用您有多个问题:1)cntd不是一个表函数,因为您应该使用COUNTD;2)您在基于非聚合值的if语句中聚合正确答案,但“ELSE NULL”如果你的答案和我的一样,那么我会把这个标记为答案如果你的答案和我的一样,那么我会把这个标记为答案我会说你的答案仍然取决于你的补充nal需要;这就是为什么我更喜欢(我的)使用countd作为内部statemant的包装,如果不需要的话,不使用attr两次