月报、日报里最常见的问题不是「这个月卖了多少」,而是「比去年同月怎样」「比上月怎样」「比昨天怎样」。分析师要在每一行上看上期值、差额或增长率,行不能少。对齐必须按日历: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 天合计、累计、滚动请用 「累计统计」。按月压成一行短表请用 「聚合计算」。本算子只做日历对齐后的对照贴列,不压行、不滚窗口合计。
六、 关联算子导航
- 若需近 N 天合计、从头累计或滚动平均:请参考 数据统计 · 累计统计
- 若需按月压成一行短表,而不是在月明细上贴同比:请参考 数据统计 · 聚合计算
- 若需按销售额加名次而不是增长率:请参考 数据统计 · 明细排名
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 同比环比案例