Tableau 混合聚合和非聚合结果错误

Tableau mixing aggregate and non-aggregate results error

我在 Tableau 中创建计算字段时遇到问题。我有这样的数据:

ID    ...   Status     Step1    Step2    Step3
1     ...   Accepted   1        1        1
2     ...   Waiting    1        0        0
3     ...   Discard    0        0        0
4     ...   Waiting    1        1        0
...

我想创建一个计算列,它将为我提供最后一步的名称,但前提是状态为 'Accepted'。否则我想要状态。语法很简单,看起来像这样:

IF [Status] = 'Accepted' THEN (
    IF [Step3] = 1 THEN 'Step3' ELSEIF [STEP2] = 1 THEN 'Step2' ELSEIF [STEP1] = '1' THEN 'Step1' ELSE 'Step0') 
ELSE [Status]

问题是列 'Status' 是维度,而 'Step' 状态来自度量。所以他们是 AGG(Step1), AGG(Step2),... 我想这就是我收到此错误的原因:

Cannot mix aggregate and non-aggregate comparisons or results in 'IF' expressions.

我对Tableau不是很熟悉。知道我该如何解决这个问题吗?

Tableau 自动将数值解释为度量。尽管在您的情况下它们似乎是布尔值(0 表示假,1 表示真)并且实际上应该是维度。

将第 1 步、第 2 步和第 3 步转换为维度。突出显示字段,单击鼠标右键,然后选择“转换为维度”。

解法:

只需使用函数 ATTR 即可将非聚合函数(状态)变为聚合函数。然后可以将它们组合起来,计算就可以了。

IF ATTR([Status]) = 'Accepted' THEN (
    IF [Step3] = 1 THEN 'Step3' ELSEIF [STEP2] = 1 THEN 'Step2' ELSEIF [STEP1] = '1' THEN 'Step1' ELSE 'Step0') 
ELSE ATTR([Status])