我正在尝试创建一个简单的人均收入计算结果,该数据与数据中的不同过滤器一起使用。我将它用于单个记录,但是,它会因多个记录而错误地聚合并聚合。
我现在的公式只是Sum([Revenue]) / Sum([Attendance])
。当我只选择一个事件时,这个工作。但是,只要我选择多个节目,它就会聚合而不会进行加权平均。
答案 0 :(得分:0)
我在这里做了一些假设,但希望这会帮助你。我用以下数据创建了一个.xlsx文件:
Event Revenue Attendance
Event 1 63761 6685
Event 2 24065 3613
Event 3 69325 4635
Event 4 41996 5414
在Tableu中,我为Rev Per Per创建了计算列。
最后,在Analysis下拉列表中,我启用了Show Column Grand Totals
。这给了我以下内容:
简单修复
问题是所有列总计都是使用SUM聚合计算的。这是收入和出勤所需的行为,但对于每人修订版,您希望显示平均值。
在Analysis / Totals / Total All Using中,您可以配置默认聚合。在这里,我们不想设置所有这些;但知道这很有用。保留原样,然后点击Rev Per Person
总计价值并将其从“自动”更改为“平均”。
但这并不完全符合你的期望。所有人均Rev值的平均值为9.73美元;但如果你拿总税收/总出勤率,你会期望价值9.79美元。
稍微更多参与修复
首先 - 撤消简单修复。我们将所有总数保持在'默认'。相反,我们会修改Rev Per Person
计算。
IF Size() > 1 THEN
// Grand Total
SUM([Revenue]/[Attendance])
ELSE
// Regular View
SUM([Revenue])/SUM([Attendance])
END
正在使用Size()来确定是否对单个单元格进行了计算。
有关Size()和类似功能的更多信息,请访问Tableau网站 - https://onlinehelp.tableau.com/current/pro/desktop/en-us/functions_functions_tablecalculation.html
现在我看到了9.79美元的预期值。