【问题标题】:Subtract two aggregated values in Bar Chart在条形图中减去两个聚合值
【发布时间】:2017-02-23 04:17:04
【问题描述】:

我的数据是这样的 -

+-----------+------------------+-----------------+-------------+
| Issue Num |    Created On    |    Closed at    | Issue Owner |
+-----------+------------------+-----------------+-------------+
|         1 | 12/21/2016 15:26 | 1/13/2017 9:48  | Name 1      |
|         2 | 1/10/2017 7:38   | 1/13/2017 9:08  | Name 2      |
|         3 | 1/13/2017 8:57   | 1/13/2017 8:58  | Name 2      |
|         4 | 12/20/2016 20:30 | 1/13/2017 5:46  | Name 2      |
|         5 | 12/21/2016 19:30 | 1/13/2017 1:14  | Name 1      |
|         6 | 12/20/2016 20:30 | 1/12/2017 9:11  | Name 1      |
|         7 | 1/9/2017 17:44   | 1/12/2017 1:52  | Name 1      |
|         8 | 12/21/2016 19:36 | 1/11/2017 16:59 | Name 1      |
|         9 | 12/20/2016 19:54 | 1/11/2017 15:45 | Name 1      |
+-----------+------------------+-----------------+-------------+

我想要实现的是

  • 每周创建的问题数
  • 每周关闭的问题数
  • 每周剩余的净问题数

我能够解决前两点,但无法接近最后一点。


我的尝试 -

这给了我每周创建的问题数量。

类似地,我每周关闭。




问题的净数量(已创建-已关闭)-

我尝试将 Closed At 列与 Created On 一起添加,但我也看不到图表中的第二个柱以及 Created On。 像这样的




我尝试在 excel 中做同样的事情 -

我想要这样的东西,但有另一列作为区别 该周创建的问题数 - 该周关闭的问题数

在这种情况下,8-6=2。

【问题讨论】:

    标签: sql data-visualization tableau-api


    【解决方案1】:

    您可以使用计算字段(分析->创建计算字段)。像这样的:

     {FIXED [Create Date]:Count(if DATEPART('year',[Create Date]) = 2016 then [Number of Records] end)} - {FIXED [Closed Date]:Count(if DATEPART('year',[Closed Date]) = 2016 then [Number of Records] end)}
    

    此函数使用 LOD 表达式来拉回两组值。它将过滤两个日期集的所有 2016 年结果,然后将它们相互减去。

    有关 LOD 的更多信息,请参见此处:

    https://www.tableau.com/about/blog/LOD-expressions

    将此用作您的度量,并将您的日期字段之一作为维度。

    【讨论】:

    • 知道如何继续使用 Weeks 而不是 year 吗? (或几个月)。我不想每周都硬编码。
    • 计算字段应该为你拉回数字。只需将日期药丸放入您的架子并调整几个月或几周,它应该可以工作。唯一的问题是,数字显然会有所不同,具体取决于您是使用开放日期还是结束日期字段作为维度。
    【解决方案2】:

    解决此问题的常规方法是重塑数据,以便每次状态更改只有一行而不是每个问题一行,其中一列名为 [Date],一列名为 [Action]。该操作可以是提交和关闭(或者在更复杂的世界中包括批准、拒绝等 - 跟踪历史记录。

    • 您可以在不修改源数据的情况下进行整形,方法是使用 UNION 获取具有适当计算字段的每行的两个副本,以使可见列有意义(例如,创建一个名为 Date 的计算字段以返回提交日期或关闭日期取决于该行是来自第一个联合还是第二个联合,类似的一个称为 Action,其值也取决于此。过滤掉具有空日期的关闭操作)
    • 或者您可以预处理数据以重塑它。
    • 或者您可以使用数据混合来创建两个指向同一数据源的源,但自定义链接字段以排列提交和关闭日期(例如,复制数据连接并将两个日期字段重命名为具有相同的名称)。但是在这种情况下,您可能希望创建具有每个日期但没有其他数据的脚手架源,以用作主要数据源,以避免从次要数据中过滤出未出现在主要数据中的日期。混合方法可能很脆弱。

    假设您使用 UNION 方法而不是 Data Blending,那么您可以计算特定日期范围内的提交和关闭的数量,或者计算差异的总和以查看随着时间的推移积压的大小。

    【讨论】:

      猜你喜欢
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多