Tableau计算字段-跨多个度量

时间:2019-02-21 20:37:32

标签: max multiple-columns tableau min calculated-field

我正在尝试使用一组最少的字段,不包括0。对于在Tableau中使用计算字段,我是一个新手。

我已经能够像这样链接min函数:
MIN(MIN(MIN([a],[b]), [c]), [d]) etc...

但是,我想不出一种方法来为我的每项措施过滤掉0。我尝试了REGEXP_REPLACE。我还尝试为值设置更大的IF THEN,例如:

IF [a] > 0 THEN [a]  
IF [b] > 0 THEN [b]

以便新值将被清空。但是,由于我需要将所有链接都链接到这个计算字段中,因此这也不起作用。计算这样的东西的功能方法是什么?假设我无法在Tableau之外修改数据,那么如何处理像这样修改多个字段?


所需结果:
(伪代码)

given that a,b,c,d,e = 15,0,10,0,25  
Min_No0([a],[b],[c],[d],[e],...) = 10

2 个答案:

答案 0 :(得分:0)

好的,我能够成功完成以下操作:

MIN(MIN(IF [a] = 0 THEN 9999999 ELSE [a] END, 
IF [b] = 0 THEN 9999999 ELSE [b] END),
IF [c] = 0 THEN 9999999 ELSE [c] END)

通过链接min并在min函数中包含if语句。我确定这不是最好的方法,但它确实有效。

答案 1 :(得分:0)

这是一个在列[a] [b]和[c]之间查找MIN()的解决方案,不包括和值为零。

MIN(MIN(IF [a] !=0 THEN [a]
        ELSEIF [b] !=0 THEN [b]
        ELSEIF [c] !=0 THEN [c]
        END,

    IF [b] !=0 THEN [b]
        ELSEIF [c] !=0 THEN [c]
        ELSEIF [a] !=0 THEN [a]
        END),

    IF [c] !=0 THEN [c]
        ELSEIF [a] !=0 THEN [a]
        ELSEIF [b] !=0 THEN [b]
        END)

内部MIN()比较[a]和[b]。如果这些数字中的任何一个为零,只要该数字也不等于零,它将替换另一个数字。外部MIN()将[c]与内部MIN()的较小数字进行比较。

如果[a],[b]和[c]都等于零,则结果当然为'Null'。