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

如何在Tableau中基于维度和度量创建季度YoY计算字段?

在Tableau中实现季度同比(YoY)分析的方法

针对你提出的季度同比计算需求——公式为(当前季度收入/往前推4个季度的收入)-1,结合你的数据里quarter_id是连续递增(每季度+1)的特点,我整理了两种直接可行的实现方式:

方法1:用表计算快速实现(推荐)

这种方法适合已经把季度维度(比如quarter_id或对应的季度日期)放到视图里的场景,操作起来最直接:

  • 点击顶部菜单栏的「分析」→「创建计算字段」,命名为季度同比YoY
  • 输入以下公式:
( SUM([quarter_revenue]) / LOOKUP(SUM([quarter_revenue]), -4) ) - 1
  • 简单解释:LOOKUP函数的作用是按指定偏移量取对应位置的数据,这里-4就代表往前数第4个季度(正好对应你需要的“往前推4个季度”,因为你的quarter_id每季度递增1)
  • 把这个计算字段拖到视图后,可能需要调整表计算的计算逻辑:
    • 右键视图里的季度同比YoY字段 → 「编辑表计算」
    • 在「计算依据」里选择quarter_id,确保是按照季度ID的顺序来计算偏移量,避免结果出错

方法2:用LOD表达式灵活计算

如果你需要在不依赖视图布局的情况下得到同比值(比如用于筛选、后续计算等场景),可以用FIXED类型的LOD表达式来提前获取前4个季度的收入:

  • 先创建一个计算字段前4季度收入:
{FIXED : SUM(IF [quarter_id] = ATTR([quarter_id]) - 4 THEN [quarter_revenue] END)}
  • 解释:ATTR([quarter_id])会获取当前行的季度ID,然后匹配ID减4的那一行的收入并求和,这样就能得到对应季度的对比值
  • 再创建最终的季度同比YoY计算字段:
( SUM([quarter_revenue]) / [前4季度收入] ) - 1

结果验证

用你给出的示例数据测试一下:

  • quarter_id 14(2016Q1)的收入是405,对应前4个季度的quarter_id 10(2015Q1)收入200,计算得(405/200)-1=1.025,也就是102.5%的同比增长
  • quarter_id 15(2016Q2)对应quarter_id 11的430,计算得(493/430)-1≈0.1465,即14.65%的同比增长

最后,你可以右键视图里的同比字段,选择「设置格式」,把数值改成百分比形式,看起来会更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:28:13