【问题标题】:calculated field for month can't sum up when trying for quarter尝试季度时,月份的计算字段无法汇总
【发布时间】:2015-06-19 14:02:09
【问题描述】:


我正在尝试将季度收益计算为复合收益。
公式:-
(1+M1)*(1+M2)*...*(1+Mn)-1
M1 = 第一个月的回报。
M2 = 第二个月的回报。

现在,我没有找到任何可以实现这一目标的方法。我在这里错过了什么吗?
因此,我创建了两个计算字段 [M-1]、[M-2],它们具有上个月的回报

([M-1] = LOOKUP(ATTR([Monthly Return]), -1), [M-2] = LOOKUP(ATTR([Monthly Return]), -2))

并使用公式计算新字段 QR:

IF(ATTR([Month]) = 3 OR ATTR([Month]) = 6 OR ATTR([Month]) = 9 OR ATTR([Month]) = 12)
THEN
    ((1+ATTR([Monthly Return]))*(1+[M-1])*(1+[M-2]))-1
ELSE
    0
END

这给了我

到目前为止,这是正确的。现在当我尝试季度时,它应该将所有三个月的值相加并给我 Q1 对吗?相反,它给了我 0 或 null 如下:

可以在here 中找到 tbwx 文件。 为什么会这样?有什么我错过的吗?有没有其他方法可以实现这一目标?

提前致谢。

【问题讨论】:

    标签: tableau-api


    【解决方案1】:

    问题是,表计算(LOOKUP 是一个例子)取决于工作表上明确的聚合级别。

    看一下,在 [M-1] 和 [M-2] 计算中,您告诉 Tableau 您希望它在几个月内执行。因此,在您的季度示例中,它基本上采用最后一个季度的值,而不是月份。而且您正在使用 ATTR,当并非每个维度的所有值都相同时,这可能会产生不可预知的结果。

    我认为正在发生的事情:ATTR([Month]) 没有返回任何季度的 3、6、9 或 12(我猜 Tableau 会采用第一个值,因此是 1、4、7、10) ,因此它落在 ELSE 0 循环中。

    编辑:可以做什么?如果您的第一个图表是正确的,您可以隐藏不必要的字段。一种方法实际上是隐藏您不感兴趣的月份。另一种方法更实用,但有点小技巧。

    创建一个字段([过滤月份]):

    LOOKUP(MAX([Month]),0)%3 = 0
    

    并将其拖到过滤器中,并选择真实值

    这将只保留您感兴趣的月份(3 的倍数),但不会搞砸您的计算,因为表计算(如查找)是在所有内容都计算完之后才执行的。因此,过滤后的月份不会出现在您的图表中,但仍会在其他计算中考虑。

    您仍然需要在图表上保留 [Month] 维度,但您可以随时使用字体大小和颜色来隐藏它

    【讨论】:

    • 感谢您的回复。这应该对每月的结果求和并显示,而不是为季度(SUM(monthly_returns))再次计算公式。有没有其他方法可以实现这一目标?
    • 有一个小技巧。编辑我的回复
    • 我明白了。我只需要从Analysis 中取消选中Aggregate Measures。它不会再次计算聚合度量。谢谢。
    • 看起来你做的和我做的不一样。如果是这种情况,您介意分享您的解决方案吗?它可以帮助其他有类似问题的人
    【解决方案2】:

    用于计算复合季度回报的公式是:
    (1+M1)*(1+M2)*...*(1+Mn)-1
    M1 = 该季度的第一个月回报。
    M2 = 该季度的第二个月回报。
    并仅使用问题中显示的 IF ELSE 语句计算第 3、6、9 和 12 个月。
    因此,这在每月视图中运行良好,如 pic-1(有问题)所示。对于季度,它应该是
    相反,它给了我 0 或 null,如 pic-2(有问题)

    这是因为,它按季度汇总度量值,并将公式 ((1+M1)*(1+M2)*...*(1+Mn)-1) 应用于汇总度量值。也就是说,它计算季度的SUM([Monthly Return]) 并在之后应用公式。它必须先用公式计算,然后对结果求和。

    我所做的只是取消选中 Analysis 中的 Aggregate Measures

    在计算之前不会聚合值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多