将两个级别的数据放在一个表格工作表中并进行汇总

时间:2019-06-28 14:50:07

标签: aggregate tableau

我正在Tableau上建立主管计分卡。基本上,有两个部分会影响主管的分数。一个是主管自己的表现,例如。有自己的迟到。另一部分是他们报告员工的绩效,例如。他们的员工缺席。 我的期望是汇总dashbaord中的所有条件,然后过滤主管的ID得到他的计分卡数据。这是原始数据的示例: enter image description here 因此,从数据中我们可以知道,对于每个CSR,他们都有自己的主管,而对于一个主管,其报告主管(应为经理)是空白的。

所以我创建了3个计算字段。一个叫做SUP_ID,下面是代码:

IF  ISNULL([SupervisorID]) THEN [EmployeeID]
ELSE [SupervisorID]
END

另一个计算字段称为SUP_Flag,代码为:

[EmployeeID]=[SupervisorID____OLD]

最后一个称为SupervisorID___OLD],代码为:

IF [ROLE] = 'Supervisor' THEN [EmployeeID]
ELSE NULL
END

有了这三个计算字段,我可以使用SUP_ID筛选每个工作表中我想要的所有信息。当我想要每位主管的下属员工的绩效时,我将仅使用SUP_ID作为过滤器。如果我想让每个主管自己表现,我可以使用SUP_ID以及SUP_Flag来提供信息,并且效果很好。

以上所有操作均由单独的工作表完成。

现在我的问题是: 我需要输入一个字段,称为主管的最终分数,它与员工的绩效得分和主管的自身绩效得分结合在一起。这两个分数都在以前的单独工作表中。我正在考虑使用LOD来聚合它们,但是这并不符合我的期望。

这是我写的: Final_Score_Part1(Sup的表现)

{FIXED [SUP_ID],[Supe Flag]: ([EVALUATION SC]*1* 0.2)}

Final_Socre_Part2(员工绩效)

{FIXED [SUP_ID],[Supe Flag]:  ((([LOST TIME %] * 0.6) + ([ATTENDENCE_SC]*0.2) + ([PUNCTUALITY_SC]*0.2)) * 0.5 )}

最终得分:

Final_Score_Part1 + Final_Socre_Part2

这是Tableau给我的屏幕截图。 enter image description here (我已经划掉了主管的名字) 因此,您可以看到part1分数基于Sup_Flag = True,而part2 socre则基于SUp_Flag = Null,因此当我汇总它们时,它仍然不会给我正确的分数。

有人可以帮我吗?非常感谢您的帮助。

谢谢

@Phani,您好, 由于我无法上传图片发表评论,因此我在此处发布了新图片 enter image description here

1 个答案:

答案 0 :(得分:0)

对于Final_Score_Part1(Sup的表现):包括以下条件 如果[角色] ='主管'然后计算分数[] 否则为空 结束

Final_Socre_Part2(员工绩效)中需要使用相同的条件。