每个类别的动态周平均值

时间:2015-12-22 11:05:53

标签: average tableau

我有一个数据集如下:

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问题应用相同技术的方法。

3 个答案:

答案 0 :(得分:2)

  1. 添加新维度,即维持数周
  2. 然后,您可以创建一个变量来计算特定周的平均金额,如下所示: {固定[日期(周数)],[类别]:平均([金额])}
  3. 然后,当你想要平均时,你可以平均上述公式 AVG({FIXED [日期(周数)],[类别]:平均([金额])})

答案 1 :(得分:0)

首先确保名为DATE的字段的数据类型是日期而不是字符串。如果没有,请从鼠标右键菜单更改数据类型,或者最坏情况下使用计算字段中的日期分析功能。

其次,将DATE字段放在工具架上后,将粒度的日期级别设置为Week。再次],使用鼠标右键菜单。从第二批选项中进行选择,将日期截断为周级别。该菜单上的第一批选项是日期部分,而不是日期。您可能希望根据预期视图将字段更改为离散。

答案 2 :(得分:0)

根据Mark Andersen的解决方案,我发现了以下内容:

  1. 创建计算字段WeekNumber

    DATETRUNC('week', [Date])

  2. 创建计算字段WeekTotal

    {FIXED [WeekNumber], [Main Category]: SUM([Amount Person]) }

  3. 创建计算字段WeekDiff

    DATEDIFF('week',#2015-08-01#,TODAY())

  4. 创建计算字段WeekAvg

    [WeekTotal] / [WeekDiff] 使用WeekAvg作为酒吧的安慰并完成。

  5. 一些评论: 马克的解决方案朝着正确的方向发展。我必须将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(),但如果我在两个任意日期之间使用过滤器,那么它会自动计算。