Tableau 计算每月动态滚动非重复计数

问题描述 投票:0回答:1

我被要求将以前的 Excel 和

PowerBI
仪表板转换为 Tableau,我遇到了一个问题,我需要根据 [发票日期] 显示每个月 [供应商代码] 的不同计数,以及不同的计数从当月开始,过去 13 个月的[供应商代码]计数。我做了一个简短的例子如下:

我的数据集: enter image description here

这是每个供应商代码在 5 年期间(2019 年 1 月 1 日 - 2023 年 12 月 31 日)的所有发票,如您所见,每天可能有多个[供应商代码]。

我的目标:(基于年月水平)

enter image description here

这将是一张面积图,显示该月的 [供应商代码] 的不同计数与滚动 13 个月的 [供应商代码] 的不同计数,即:

  1. 2019 年 1 月至 2020 年 1 月期间没有任何价值,因为这些期间没有 13 个月的数据;
  2. 第一个 13 个月的不同计数点将于 2020 年 2 月,一直到 2023 年 12 月。

当前的非重复计数很简单,它与我拖动到行/列的任何维度一致,就像“COUNTD([供应商代码])”一样。痛苦在于滚动的 13 个月,我不知道 Tableau 如何将过滤器纳入计算中。

我想知道如何为 Tableau 提供动态日期范围(即当前月份之前的 13 个月)。

我也对“FIXED”方法感到困惑,我得到了类似的东西:

{FIXED [Supplier Code],[Invoice Date]:
MIN(IF [Invoice Date] = {EXCLUDE [Invoice Date] : MIN([Invoice Date])}
THEN 1
ELSE 0
END
)}

当我将其拖到表格中时,它会生成当月的[供应商代码]的新的不同计数,与当月之前的所有月份进行比较。好吧,这是我目前最好的方法,就好像我在上面的代码上使用“RUNNING_SUM(SUM())”的另一个计算一样,它得到了“Feb 2020”的正确结果,因为它是滚动13个月。然后它只是将 [供应商代码] 的新不同计数添加到我的数据集的最后一个月。

期待这里有不同的做法~

tableau-desktop
1个回答
0
投票

您可以创建一个计算字段来获取发票日期的最后 13 个月,并将其基于 TODAY() 日期函数以使其动态化。

类似:

IF [Invoice Date] >= DATEADD('month', -13, TODAY()) AND [Invoice Date] <= TODAY() THEN ...

这会检查发票日期是否在今天之前或截至今天 13 个月的日期范围内。

帮助澄清:

FIXED
计算将计算的详细级别固定或“固定”到您在计算中冒号之前放置的字段的任何级别。 在此处阅读更多相关信息

© www.soinside.com 2019 - 2024. All rights reserved.