我碰壁了一些东西,需要一些指导。我在Tableau中有一个仪表板,可以计算过去的过期/过期培训率。最终分数(请参见下面的代码)基于(目前)2018年全年,但是由于公式的设置方式,它根据月份(在本例中为MAX月份)确定要使用的行是十二月)。这对于所有完整年份(2018年及之前)都很好,但是对于2019年来说,效果并不好,因为我们确实有一些截止到4月的数据。这是代码:
(TOTAL([Incomplete Overdue])
+ SUM(IF ([Past Due]<0 AND INT([Due Month]) = {MAX(INT([Due Month]))}) THEN 1 ELSE 0 END))
/ COUNT(IF INT([Due Month]) = {MAX(INT([Due Month]))} THEN [Employee ID] END)
我不希望将本年度的总和基于今年的MAX月份(仅过去几年)。因此,我认为我会执行以下操作:
添加一个新的计算字段,该字段的计算结果只能根据前一个月到今天的数字提供给我。这是代码:
(TOTAL([Incomplete Overdue])
+ SUM(IF ([Past Due]<0 AND INT([Due Month]) < INT(YEAR(TODAY()))) THEN 1 ELSE 0 END))
/ COUNT(IF INT([Due Month]) < INT(YEAR(TODAY())) THEN [Employee ID] END)
现在我已经计算出两个计算字段,添加另一个检查以查看我的过滤器选择的年份。如果小于当前年份,请给我第一个代码块的结果,否则,必须为当前年份,所以请给我第二个代码块的结果。这是计算所得的字段:
IF INT([Due Date]) < INT(YEAR(TODAY())) THEN [Past Due Rate Including Prior Month Overdue - Past Years]
ELSE [Past Due Rate Including Prior Month Overdue - Current Year]
END
但是,出现以下错误:
tableau无法混合汇总比较和非汇总比较,或者无法生成表达式
阅读后我发现:
Example on Tableau's Site for the error
这很有意义,但是现在我需要弄清楚如何编写修改主公式(第一个代码块)以测试它是否是2018年或更早的版本,并查看计算的MAX月份(12),或者是否是当前年份,请查看本月之前和之前的月份。
我在以下位置发布了一个与此问题不同的问题:
这就是我确定此公式的地方。预先感谢大家提供的任何帮助!