【发布时间】:2017-10-23 15:40:17
【问题描述】:
我在 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
...
我想创建一个计算列,它会给我最后一步的名称,但仅当状态为“已接受”时。否则我想要状态。语法很简单,如下所示:
IF [Status] = 'Accepted' THEN (
IF [Step3] = 1 THEN 'Step3' ELSEIF [STEP2] = 1 THEN 'Step2' ELSEIF [STEP1] = '1' THEN 'Step1' ELSE 'Step0')
ELSE [Status]
问题在于“状态”列是一个维度,而“步骤”状态来自度量。所以他们是 AGG(Step1), AGG(Step2),... 我想这就是我收到此错误的原因:
Cannot mix aggregate and non-aggregate comparisons or results in 'IF' expressions.
我对 Tableau 不是很熟悉。知道如何解决这个问题吗?
【问题讨论】:
-
您好,您的 [step3] 度量的格式是什么?假设它是一个数字,尝试将其更改为一个字符串,这样会消除错误吗?
-
嘿,这是从实际代码中复制粘贴的吗?使用 step if 语句,您似乎在说第 3 步和第 2 步是否等于第 1 步,那么在第 1 步中您是在说它是否等于字符串(“1”)。更改此设置可以解决您的问题吗?
-
你能显示Step1的定义吗?它是数据集中的计算字段还是显式字段
-
您可能会发现使用多个数据源更容易——假设它们都是相同基础表的视图,由数据窗格中的不同连接创建。因此,每个 ID 都有一个数据源,对于回答诸如每个项目的当前状态之类的问题很有用。还有另一个数据源,每个状态更改都有一行(例如,记录在此日期,第 3 项更改移动到第 2 步)该数据源将方便其他类型的问题,例如那些专注于跟踪状态随时间变化的问题跨度>
标签: tableau-api calculated-field