我有一个数据集如下:
DATE | AMOUNT | CATEGORY
20.12.2015 | 100.00 | Drinks
22.12.2015 | 50.00 | Food
20.12.2015 | 70.00 | Transport
07.12.2015 | 50.00 | Transport
...
有几个记录包含每周和每天的花费。
我想要一个条形图,左边是类别,条形长度表示每周平均值,即。在过滤的时间范围内每周平均花费的内容
如果我使用普通AVG([AMOUNT])
,它会计算每日平均值,而不是每周平均值。
我发现了这个问题: Tableau - weekly average from daily data
然而,其中一个答案不是动态的,另一个答案列出了连续几周的平均值,而不是每个类别的平均值,我想不出为mmy问题应用相同技术的方法。
答案 0 :(得分:2)
答案 1 :(得分:0)
首先确保名为DATE的字段的数据类型是日期而不是字符串。如果没有,请从鼠标右键菜单更改数据类型,或者最坏情况下使用计算字段中的日期分析功能。
其次,将DATE字段放在工具架上后,将粒度的日期级别设置为Week。再次],使用鼠标右键菜单。从第二批选项中进行选择,将日期截断为周级别。该菜单上的第一批选项是日期部分,而不是日期。您可能希望根据预期视图将字段更改为离散。
答案 2 :(得分:0)
根据Mark Andersen的解决方案,我发现了以下内容:
创建计算字段WeekNumber
:
DATETRUNC('week', [Date])
创建计算字段WeekTotal
:
{FIXED [WeekNumber], [Main Category]: SUM([Amount Person]) }
创建计算字段WeekDiff
:
DATEDIFF('week',#2015-08-01#,TODAY())
创建计算字段WeekAvg
:
[WeekTotal] / [WeekDiff]
使用WeekAvg
作为酒吧的安慰并完成。
一些评论:
马克的解决方案朝着正确的方向发展。我必须将avg([Amount])
替换为sum([Amount])
,因为我希望每周获得总数并在之后平均。
然而,由于Tableau仅根据支出周数计算平均值,因此它并未准确计算出我想要的数据。
如果我有
40$ in week 1 20$ in week 2 30$ in week 4
然后计算(40+20+30)/3 = 30
,而我希望(40+20+30)/4 = 20.25
在我的用例中,我的解决方案是有效的,因为我有一个固定的时间范围,直到TODAY()
,但如果我在两个任意日期之间使用过滤器,那么它会自动计算。