【问题标题】:To put two level of data in one tableau worksheet and aggregate them将两个级别的数据放在一个表格工作表中并聚合它们
【发布时间】:2019-07-02 23:51:12
【问题描述】:

我正在 Tableau 上建立主管记分卡。基本上,有两个部分会影响主管的分数。一个是主管自己的表现,例如。有自己的迟到。另一部分是他们报告员工的表现,例如。他们的员工的缺勤。 我的期望是聚合仪表板中的所有标准,并过滤主管的 ID 获取他的记分卡数据。以下是原始数据的示例: 所以从数据中我们可以知道,对于每一个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(苏普的表现)

{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:

Final_Score_Part1 + Final_Socre_Part2

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

有人可以帮我解决这个问题吗?非常感谢您的帮助。

谢谢

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

【问题讨论】:

    标签: aggregate tableau-api


    【解决方案1】:

    对于 Final_Score_Part1(Sup 的表现):包括条件 IF [ROLE] = 'Supervisor' THEN 计算分数[] 否则为空 结束

    Final_Socre_Part2(Employee's performance)中需要使用相同的条件。

    【讨论】:

    • 嗨@phani,感谢您的评论。但是,它不起作用。第 2 部分中有两个数字不正确。对于 4252,part 2 的分数应该是 0.32,对于 7197,part 2 的分数也应该是 0.32,但是在报告中,它给了我 0.34 和 0.265。您是否碰巧知道这两个数字可能来自哪里?其他一切都是正确的。
    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2015-10-29
    • 2017-06-13
    • 1970-01-01
    相关资源
    最近更新 更多