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

Tableau api 表中的计算字段取决于列中的值,tableau-api,calculated-field,Tableau Api,Calculated Field,我是Tableau的新手,所以可能会弄错,我正在尝试创建一个计算字段,计算“完成”任务的百分比 我的数据看起来像 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

我是Tableau的新手,所以可能会弄错,我正在尝试创建一个计算字段,计算“完成”任务的百分比

我的数据看起来像

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
我试图计算出每个部门完成任务的百分比,例如,在人力资源部门,任务完成率为8/27。这些数据每周更新一次,所以我想知道最近的日期。只有两个任务。到目前为止,我得到的是

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
但是,它正在抛出“无法混合聚合和非聚合比较或导致IF表达式。”错误

有人能给我指出正确的方向吗?

2个选项

  • 将[Date]包装在ATTR()中,如果ATTR([Date])=
  • 重写您的计算并利用:

  • SUM(INT([Date]==#05/11#和RIGHT([Task Status],10)=“(complete)”)/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、 这将为您提供每个日期的比率。如果您需要一个日期的这个比率,请从视图中过滤掉其他日期

    谢谢,我不知道有LOD表达式