0

我在 Tableau 中有如下所示的原始数据:

Month,Total
2021-08,17
2021-09,34
2021-10,41
2021-11,26
2021-12,6

并通过使用以下计算

RUNNING_SUM( 
COUNTD(IF [Inserted At]>=[Parameters].[Start Date]
       AND [Inserted At]<=[End Date]
THEN [Id] ELSE NULL END
))

/

LOOKUP(RUNNING_SUM( 
COUNTD(IF [Inserted At]>=[Parameters].[Start Date]
       AND [Inserted At]<=[End Date]
THEN [Id] ELSE NULL END
)),-1)*100-100

我明白了

Month,My_Calc
2021-08,NULL
2021-09,200
2021-10,80.4
2021-11,28.3
2021-12,5.1

而我真正想要的只是 5.1(上个月值)作为一个重要指标(月环比增长百分比)。

我怎样才能做到这一点?

我对 Tableau 比较陌生,不知道如何将计算字段与日期分组方面结合使用来表达我想计算逐月增长。我已经尝试过运行总表计算的本地同比增长,但结果并不相同,因为我认为我的计算方法不同。

4

3 回答 3

0

好的,从头开始,这对我有用:(我不知道如何在不使用 ShowMe 和 Flip 的情况下获得我想要的表格格式,但它有效。还有其他人吗?)

  1. 将日期拖到行,将其更改为组合月份(日期)
  2. 将销售额拖到列架
  3. 在 showme 中选择 TEXT-TABLES
  4. 使用工具栏翻转列的行

得到一个像你上面显示的表格

将 Sales 拖到颜色上(这是一个简单地保持一分钟的技巧),
单击标记卡中新 SALES 药丸上的向下箭头,
选择“添加表格计算”,选择 SUM 的 Running Total,计算使用表(下),但不要关闭此弹出窗口。

单击底部的添加辅助计算复选框,使用相对于上一个的表向下选择与计算不同的百分比

通过关闭弹出窗口 (x) 接受您的工作。

现在,将标记卡中的新药丸从颜色更改为文本

您可以在底部看到 5.1%。快完成了。

通过单击 ShowMe 中的表格并翻转轴再次重新格式化。

单击销售列标题并将其隐藏

创建一个新的计算字段标签 'rows-from-bottom' 公式 = last() 关闭弹出窗口

将新的药丸行从底部拖动到过滤器架选择范围 0 到 0 关闭弹出窗口。

完毕。

在接下来的两周内,您可以在此处查看完成的工作簿 https://public.tableau.com/app/profile/wade.schuette/viz/month-to-month/hiderows?publish=yes

于 2021-12-13T02:50:48.353 回答
0

首先是一个简短的表格计算介绍,然后是最后的答案。

Tableau 中的大部分计算实际上是由数据源(例如数据库服务器)执行的,然后将结果返回给 Tableau(即客户端)进行演示。这种职责分离可以实现高性能,即使面对非常大的数据集也是如此。

相比之下,表计算对从服务器返回的查询结果表进行操作。它们在操作管道的顺序中执行较晚。这就是为什么表计算对聚合数据进行操作的原因——即您必须要求 WINDOW_SUM(SUM([Sales)) 而不是 WINDOW_SUM([Sales])

表计算使您有机会在呈现给用户之前对从数据源返回的查询结果进行最终计算。例如,您可以计算运行总计或使可视化布局动态地部分取决于查询结果的内容。这种灵活性是有代价的,计算只是定义表格计算的一部分。您还必须指定如何将计算应用于汇总结果表,称为分区和寻址Tableau 在线帮助对分区和寻址进行了有用的定义。

本质上,表格计算一次应用于汇总数据块,也就是向量或窗口。分区是您告诉 Tableau 您希望如何将汇总查询结果分解到窗口中以便应用表计算的方式。寻址是您指定遍历这些分区的顺序的方式。寻址对于某些表计算很重要,例如 RUNNING_SUM,而对于其他表计算则不重要,例如 WINDOW_SUM。

除了很好地理解分区和寻址之外,了解函数 INDEX()、SIZE()、FIRST()、LAST()、WINDOW_SUM()、LOOKUP() 和(最终)PREVIOUS_VALUE() 也有助于真正理解表计算。如果您真正了解它们,您将能够仅使用其中两个作为基本功能来实现所有这些功能。

最后,部分解决您的问题:

您可以使用布尔公式LAST() = 0来判断您是否处于分区的最后一个值。如果将该公式用作过滤器,则可以隐藏所有其他值。您必须正确指定分区和寻址。您实际上是从服务器获取一批数据,在客户端的计算中使用它,但只显示其中的一部分。根据货架上的哪些字段,这可能有点脆弱,但它可以工作。

通常,使用可以在服务器端执行的计算(例如 LOD calc)会更有效,如果这样可以避免仅为客户端计算获取数据。但是如果数据已经被提取用于其他目的,或者如果计算需要表格计算功能,例如依赖于值顺序的能力,那么表格计算是一个很好的工具。

于 2021-12-08T17:24:53.343 回答
0

不管你怎么做,从 2021.11(值 26)到 2021.12(值 6)的月度变化百分比不是 5.1%。

它是 (( 6 - 26 ) / 26) * 100 = -76.9 %

于 2021-12-12T19:22:54.727 回答