月报、日报里最常见的问题不是「这个月卖了多少」,而是「比去年同月怎样」「比上月怎样」「比昨天怎样」。分析师要在每一行上看上期值、差额或增长率,行不能少。对齐必须按日历:2025 年 1 月要对齐 2024 年 1 月,而不是往前数 12 行。

如果采用传统手工方式,只能靠 VLOOKUP 拼去年表,或按行号偏移 12 格。中间缺月、插了汇总行,偏移立刻对错期;去年没有同期的格子本应空着,手工却容易填 0 或误用邻行。过程无法沉淀为可回溯、可自动复跑的工作流。

DT-Bot 的 「同比环比」 算子专为解决此类按时间对齐上一期或去年同期而设计。它给每一行加上期值、差额或增长率,行数不变。同比按日历对齐,不是往前数 365 行。未点名结果表时就地改原表。近 N 天合计、累计、滚动请用「累计统计」;按月压成一行短表请用「聚合计算」。

一、 核心能力与适用场景

「同比环比」算子聚焦于日历对齐后的上期对照贴列,覆盖以下三大核心能力:

核心能力 解决什么业务问题 典型业务场景
同比(去年同期) 按日历对齐去年同一月份(或同一日),写出增长率;去年没有同期的格子为空。 给月销售额加同比;2025-01 对齐 2024-01,而不是往前数 12 行。
环比 / 比上月 / 比昨天 跟上一个日历期比;首期没有上期,环比为空。 比上月、比昨天、逐期增长率。日流水要比昨天,把「月份」换成「日期」即可。
按主体各自比 每个门店只跟自己的上期比,不拿其他主体的数当上期。 按门店给销售额加上期值和环比增长率。

二、 边界指南:它与相近算子有何区别?

在构建数据工作流时,理解算子之间的职责边界至关重要:

比较维度 「同比环比」算子 「累计统计」算子 「聚合计算」算子 「明细排名」算子
主要定位 日历对齐的上期对照 沿日期的窗口合计/累计 压行汇总出短表 名次或百分位贴列
输出机制 默认就地加列,行数不变 默认就地加列,行数不变 源表只读,另写短表 默认就地加列,行数不变
典型动作 同比、环比、上期值 近 N 天、从头累计、滚动平均 按月压成一行 按销售额加排名
如何选择 “这一行要和去年同月或上月比” “这一行要带近 7 天或从开头累到今天” “只要每月一个数,不要贴回月明细” “要的是第几名,不是增长率”

三、 提示词编写规范与公式

「同比环比」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:

【目标表】 + 【时间列、比什么、度量列;分组则写分组列】 + 【结果表名(可选)】

1. 目标表范围表达

  • 单表精准点名:例如 “月度销售” :...;
  • 默认当前流转表:未显式提及表名时,继承上一节点连线流入的数据表。

2. 时间列、比什么

  • 同比:按 “月份” 给 “销售额” 加同比;
  • 环比 / 比上月:按 “月份” 给 “销售额” 比上月;
  • 比昨天:日流水把「月份」换成「日期」即可;
  • 按主体各自比:按门店,给销售额加上期值和环比增长率。

3. 输出

  • 不写结果表名则就地加列。原文案例中,同比列为「销售额_同比」,环比列为「销售额_环比」,上期值为「销售额_上期」。增长率 0.5 表示涨了五成。
“月度销售” :按 “月份” 给 “销售额” 加同比。

四、 核心功能与图解实战

以下结合真实企业数据场景,展示「同比环比」在不同需求下的处理效果:

场景 1:同比(按日历对齐去年同月)

业务背景:年报要看 2025 年各月相对 2024 年同月的增幅。表里 2024 与 2025 交错排列时,绝不能「往前数 12 行」当同期,否则缺月会对比错期。

【处理前:月度销售】

月份 销售额
2024-01 100
2024-02 120
2025-01 150
2025-02 180

【执行提示词】

“月度销售” :按 “月份” 给 “销售额” 加同比。

【处理后:月度销售(就地加列)】

月份 销售额 销售额_同比 变更说明
2024-01 100 去年没有更早的同期,空着
2024-02 120 同上,空着
2025-01 150 0.5 对齐 2024-01 的 100:(150 − 100) ÷ 100 = 0.5
2025-02 180 0.5 对齐 2024-02 的 120:(180 − 120) ÷ 120 = 0.5

逻辑详解:2025-01 对齐的是日历上的 2024-01,不是表中往前数的某一行。去年没有同期的格子为空,不会填 0。行数仍是 4,新列为「销售额_同比」。


场景 2:环比 / 比上月

业务背景:月度经营会要看「跟上一个月比涨了还是跌了」。1 月没有上月,环比必须空着,不能拿表外数字或 0 顶上。

【处理前:月度销售】

月份 销售额
2026-01 100
2026-02 120
2026-03 90

【执行提示词】

“月度销售” :按 “月份” 给 “销售额” 比上月。

【处理后:月度销售(就地加列)】

月份 销售额 销售额_环比 变更说明
2026-01 100 没有上月,空着
2026-02 120 0.2 (120 − 100) ÷ 100 = 0.2
2026-03 90 -0.25 (90 − 120) ÷ 120 = −0.25

逻辑详解:新列为「销售额_环比」。日流水要比昨天,把「月份」换成「日期」即可。行数不变。


场景 3:按主体各自比(上期值 + 环比)

业务背景:两家门店共用一张月报。东门店 2 月只能跟东门店 1 月比,不能拿西门店的 80 当上期。

【处理前:月度销售】

门店 月份 销售额
东门店 2026-01 100
东门店 2026-02 130
西门店 2026-01 80
西门店 2026-02 80

【执行提示词】

“月度销售” :按门店,给销售额加上期值和环比增长率。

【处理后:月度销售(就地加列)】

门店 月份 销售额 销售额_上期 销售额_环比 变更说明
东门店 2026-01 100 本店没有上月
东门店 2026-02 130 100 0.3 上期取本店 1 月;(130 − 100) ÷ 100 = 0.3
西门店 2026-01 80 本店没有上月
西门店 2026-02 80 80 0 上期取本店 1 月;(80 − 80) ÷ 80 = 0

逻辑详解:上期值列为「销售额_上期」,环比列为「销售额_环比」。西门店 2 月的上期是 80,不是东门店的 130。行数仍是 4。

五、 常见问题与操作贴士(FAQ)

Q1:同比是往前数 12 行,还是按日历找去年同月?

答:按日历对齐。2025-01 对齐 2024-01,不是往前数 12 行,也不是往前数 365 行。中间缺月时,偏移行号会对比错期。

Q2:去年没有同期、或 1 月没有上月,格子里是什么?

答:为空。不会自动填 0。0 表示「有上期且持平」(如西门店环比为 0),和「没有上期」不是一回事。

Q3:增长率 0.5、−0.25 分别表示什么?

答:按 (本期 − 上期) ÷ 上期。0.5 表示涨了五成;−0.25 表示跌了两成半。上期值需要单独写出时,提示词写明「加上期值和环比增长率」,列名为「销售额_上期」。

Q4:近 7 天合计、按月压成一行,能写在本算子里吗?

答:近 N 天合计、累计、滚动请用 「累计统计」。按月压成一行短表请用 「聚合计算」。本算子只做日历对齐后的对照贴列,不压行、不滚窗口合计。

六、 关联算子导航