【问题标题】:Dynamic weekly average per category每个类别的动态每周平均值
【发布时间】:2016-03-28 15:13:00
【问题描述】:

我有一个数据集如下:

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 问题。

【问题讨论】:

  • 样本输出对测试很有用。

标签: average tableau-api


【解决方案1】:

根据 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 作为条形的度量,它就完成了。

对此的几点说明: 马克的解决方案朝着正确的方向发展。我不得不用sum([Amount]) 替换avg([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() 之前有一个固定的时间范围,但是如果我在两个任意日期之间使用过滤器,如果可以自动计算它会很方便。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我不确定您是否误解了我的描述,或者我是否误解了您的解决方案。然而,目前这似乎不是我想要的。我不希望其中一个架子上有日期维度,我希望行上的类别和 AVG(Spendings) 作为条形的长度。问题是在定义的时间范围内将 AVG 计算为每周平均数。即时间范围 1.12.-31.12。应该给我总支出 / 5 周
    【解决方案3】:
    1. 添加一个新维度,该维度适用于几周
    2. 然后您可以创建一个变量来计算特定周的平均金额,如下所示: {FIXED [日期(周数)],[类别]:平均([金额])}
    3. 那么当你想要平均的时候你可以平均上面的公式 AVG({FIXED [Date (Week numbers)], [Category]: avg([Amount]) })

    【讨论】:

    • 您不需要为此使用 LOD 调用。可以,但没必要。主要步骤是确保将日期视为聚合周级别的维度。
    • 那种对我有用。我只需将avg([Amount]) 更改为sum([Amount]),因为我想计算每周累计支出的平均值。现在的问题是 Tableau 根据我花费的周数计算 AVG。如果我在第 1 周花费了 40 美元,在第 2 周花费了 20 美元,在第 4 周花费了 30 美元,那么它会计算 (40+20+30)/3 = 30 而我想要 (40+20+30)/4 = 20.25。知道如何解决吗?
    猜你喜欢
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2018-12-19
    • 2017-04-17
    相关资源
    最近更新 更多