You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tableau实现月度动态滚动13个月供应商编码唯一计数方案问询

解决Tableau中13个月滚动唯一供应商计数的问题

步骤1:创建年月维度字段

先将发票日期聚合到年月级别,创建计算字段[年月]:

DATETRUNC('month', [Invoice Date])

将此字段拖到行/列货架,设置为「离散」日期类型,确保按年月分组展示。

步骤2:当月唯一供应商计数

直接用Tableau内置函数计算当月唯一供应商数,创建计算字段[当月唯一供应商数]:

COUNTD([Supplier Code])

步骤3:13个月滚动唯一供应商计数

要实现「当前年月往前13个月(含当前月)」的滚动唯一计数,且仅在2020年2月及之后显示数值,创建计算字段[滚动13个月唯一供应商数]:

IF [年月] >= DATEADD('month', 12, {MIN([年月])}) THEN
  COUNTD(
    IF [Invoice Date] >= DATEADD('month', -12, [年月]) 
    AND [Invoice Date] <= DATEADD('month', 1, [年月]) - INTERVAL '1 day'
    THEN [Supplier Code] END
  )
END

公式解释

  • {MIN([年月])}:获取数据集最早年月(2019年1月),通过DATEADD('month',12, ...)得到2020年2月,作为滚动计数的起始展示月份。
  • DATEADD('month', -12, [年月]):计算当前年月往前推12个月的日期(滚动窗口起始点),结合当前年月最后一天(DATEADD('month',1,[年月]) - INTERVAL '1 day'),锁定13个月的完整时间范围。
  • COUNTD(...):统计该窗口内出现的唯一供应商编码,自动过滤窗口外的供应商,返回有效范围内的唯一值。

步骤4:构建面积图

  1. 将[年月]拖到列货架,设置为离散年月。
  2. 将[当月唯一供应商数]和[滚动13个月唯一供应商数]拖到行货架。
  3. 切换图表类型为「面积图」,调整颜色和标签区分两个指标。
  4. 公式已通过IF条件过滤2020年2月之前的滚动值,图表会自动隐藏该时段的滚动计数线条。

原方法失效原因

你之前通过「新增供应商累加」的逻辑,仅能统计从起始到当前的累计新增供应商,无法处理供应商在滚动窗口中「消失后再次出现」的场景,导致后续月份的滚动计数仅累加新增值,而非实时计算窗口内的唯一供应商数。上述方法直接针对每个滚动窗口重新统计唯一值,更贴合需求。

内容的提问来源于stack exchange,提问作者Thgiliwt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:57:42