表格中的计算字段取决于列中的值

calculated field in tableau dependent on values in column

我是 Tableau 的新手,所以可能一切都错了,我正在尝试创建一个计算字段来计算 'completed' 任务的百分比。

我的数据看起来像

Date |   Department | Task |  Task Status       |  Number of Items
5/11      HR           one    one (complete)        5
5/11      HR           one    one (in progress)     3
5/11      HR           one    one (not started)     1
5/11      HR           two    two (complete)        3
5/11      HR           two    two (in progress)     6
5/11      HR           two    two (not started)     9
5/11      Finance      one    one (complete)        3
5/11      Finance      one    one (in progress)     2
5/11      Finance      one    one (not started)     8

我正在尝试计算每个部门完成任务的百分比,例如在 HR 中,有 8/27 个任务已完成。该数据每周更新一次,所以我想知道最近的日期。只有2个任务。我目前拥有的是

IF [Date] == #05/11# 
THEN 
SUM(IF [Task Status] == 'one (complete)' OR [Task Status] =='two (complete)' THEN [Number of Items] 
END)
/SUM([Number of Items]
END

但是它抛出 'Cannot mix aggregate and non-aggregate comparison or results in IF expressions.' 错误

谁能指出我正确的方向?

2 个选项。

  1. 将 [Date] 包装在 ATTR() 中,因此它将是 IF ATTR([Date])=...
  2. 重写您的计算并利用 boolean calculations:

SUM(INT([Date] == #05/11# AND RIGHT([任务状态],10)="(完成)"))/SUM(INT([Date] == #05/ 11#))

您正在以详细级别显示的聚合级别工作。因此,您需要在此处添加 LOD 计算字段。这样做-

{FIXED [Date], [Department] : sum(IF [Task Status] = 'one (complete)' OR [Task Status] ='two (complete)' THEN
[Number of Items] End)}/{FIXED [Date], [Department] : sum([Number of Items])}

给出的样本数据

在日期和部门列前面添加此字段,在视图中,将为您提供所需的比率。

祝你好运

p.s。这将为您提供每个日期的比率。如果您需要一个日期的这个比率,请从视图中过滤掉其他日期