门店对账、部门业绩拆解时,分析师往往既要保留每一行明细,又要在同一行上看「本大区一共卖了多少」「这一行占本部门多少」。行不能少,组上的合计、平均或占比必须贴回到每一条记录上。
如果采用传统手工方式,只能按部门筛一遍再写 SUMIF,然后把结果向下填充。分组一增一减,引用范围立刻错位;想另存一份带合计列的表,又要整表复制,无法形成可回溯、可自动复跑的工作流。
DT-Bot 的 「组内加列」 算子专为解决此类组内统计贴回明细而设计。它按分组计算本组合计、平均或占比,再写到每一行上,行数不变。未点名结果表时就地改原表;点名则原表不动,合计贴在新表上。只要各组一个数、明细不要了,请使用「聚合计算」,不要把本算子写成压行短表。
一、 核心能力与适用场景
「组内加列」算子聚焦于在明细上行数不变地贴组统计,覆盖以下三大核心能力:
| 核心能力 | 解决什么业务问题 | 典型业务场景 |
|---|---|---|
| 贴组合计 | 把本组度量的合计写到该组每一行,组内各行看到同一个组值。 | 按大区把销售额合计贴到每一行,华东两行都带上本区合计。 |
| 组内占比 | 每一行除以本组合计,看出该行占本组多少。 | 看每人、每店占本部门或本大区销售额的比例。 |
| 写出新表(原表只读) | 需要保留未加列的底稿时,把贴列结果落到点名的新表。 | 按门店贴回合计,输出「销售明细_组内合计」,源表不动。 |
相对本组做偏离或标准化、以及组内行数等,提示词里写清「按谁分组、贴什么」即可;未点名新列时,合计列按原文约定称为「销售额_组内合计」一类名称。
二、 边界指南:它与相近算子有何区别?
在构建数据工作流时,理解算子之间的职责边界至关重要:
| 比较维度 | 「组内加列」算子 | 「聚合计算」算子 | 「新增列」算子 | 「明细排名」算子 |
|---|---|---|---|---|
| 主要定位 | 组统计贴回每一行 | 压行汇总出短表 | 无分组的行级公式加列 | 全表或组内名次/百分位 |
| 输出机制 | 默认就地加列,行数不变;点名则出新表 | 源表只读,另写短表 | 目标表行数不变,就地或按约定加列 | 默认就地加名次列,行数不变 |
| 典型动作 | 本区合计、组内占比贴到明细 | 每店一行合计,明细不再出现 | 单价×数量、常量列、序号列 | 组内第几名、并列跳号 |
| 如何选择 | “明细还在,只要每行带上本组合计或占比” | “只要各组一个数,明细不要了” | “没有分组,只是本行算一列” | “要的是第几名,不是合计或占比” |
三、 提示词编写规范与公式
「组内加列」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:
【目标表】 + 【按谁分组、贴什么】 + 【结果表名或新列名(可选)】
1. 目标表范围表达
- 单表精准点名:例如
“销售明细” :...; - 默认当前流转表:未显式提及表名时,继承上一节点连线流入的数据表。
2. 按谁分组、贴什么
- 贴合计:
按 “大区” 把 “销售额” 合计贴到每一行; - 贴占比:
按 “大区” 给每一行加一列,看该行销售额占本大区多少; - 提示词写清分组列与度量列;合计、平均、占比、组内行数等,以提示词写明的为准。
3. 输出与列名
- 就地加列:不写结果表名,则在原表上加列;
- 写出新表:
输出 “销售明细_组内合计”,原表不动; - 点名新列:
新列叫 “大区销售额”;没起新列名时,原文案例中合计列叫「销售额_组内合计」,占比列叫「销售额_组内占比」。
“销售明细” :按 “大区” 把 “销售额” 合计贴到每一行。
四、 核心功能与图解实战
以下结合真实企业数据场景,展示「组内加列」在不同需求下的处理效果:
场景 1:贴组合计(组内各行看到同一个组值)
业务背景:大区运营要在三行门店明细上同时看到「本区销售额合计」,以便计算费用分摊。华东两行必须都带 200,不能只写在小计行上。
【处理前:销售明细】
| 大区 | 门店 | 销售额 |
|---|---|---|
| 华东 | 东门店 | 80 |
| 华东 | 西门店 | 120 |
| 华北 | 北门店 | 50 |
【执行提示词】
“销售明细” :按 “大区” 把 “销售额” 合计贴到每一行,新列叫 “大区销售额”。
【处理后:销售明细(就地加列)】
| 大区 | 门店 | 销售额 | 大区销售额 | 变更说明 |
|---|---|---|---|---|
| 华东 | 东门店 | 80 | 200 | 本区 80 + 120,两行都写 200 |
| 华东 | 西门店 | 120 | 200 | 与东门店同一组值 |
| 华北 | 北门店 | 50 | 50 | 本组只有一行,合计即自身 |
逻辑详解:行数仍是 3,明细列原样保留。新列按提示词命名为「大区销售额」。这不是压行:东门店、西门店两行都还在。
场景 2:组内占比(行值 ÷ 本组合计)
业务背景:要看每家门店占本大区销售额的份额,用于拆任务。占比必须按组计算:华北只有一行时,占比应为 1,而不是拿全国合计做分母。
【处理前:销售明细】
| 大区 | 门店 | 销售额 |
|---|---|---|
| 华东 | 东门店 | 80 |
| 华东 | 西门店 | 120 |
| 华北 | 北门店 | 50 |
【执行提示词】
“销售明细” :按 “大区” 给每一行加一列,看该行销售额占本大区多少。
【处理后:销售明细(就地加列)】
| 大区 | 门店 | 销售额 | 销售额_组内占比 | 变更说明 |
|---|---|---|---|---|
| 华东 | 东门店 | 80 | 0.4 | 80 ÷ 200 = 0.4 |
| 华东 | 西门店 | 120 | 0.6 | 120 ÷ 200 = 0.6 |
| 华北 | 北门店 | 50 | 1 | 50 ÷ 50 = 1 |
逻辑详解:未点名新列时,占比列名为「销售额_组内占比」。分母是本大区合计,不是全表合计。行数不变,源表就地多一列。
场景 3:写出新表(原表不动)
业务背景:底稿「销售明细」要留给审计抽查,试验用的组内合计必须落到另一张表。没起新列名时,合计列按约定叫「销售额_组内合计」。
【处理前:销售明细】
| 门店 | 品类 | 销售额 |
|---|---|---|
| 东门店 | 饮料 | 30 |
| 东门店 | 零食 | 70 |
| 西门店 | 饮料 | 40 |
【执行提示词】
“销售明细” :按门店把销售额合计贴回每一行,输出 “销售明细_组内合计”。
【处理后:销售明细_组内合计(新表;源表只读)】
| 门店 | 品类 | 销售额 | 销售额_组内合计 | 变更说明 |
|---|---|---|---|---|
| 东门店 | 饮料 | 30 | 100 | 本店 30 + 70 |
| 东门店 | 零食 | 70 | 100 | 与饮料行同一店合计 |
| 西门店 | 饮料 | 40 | 40 | 本店仅一行 |
逻辑详解:工作空间新增「销售明细_组内合计」,三行与源表行数一致;源表「销售明细」不增加列。未点名新列时,合计列名为「销售额_组内合计」。
五、 常见问题与操作贴士(FAQ)
Q1:为什么执行后行数没有变少?
答:这是「组内加列」的核心设计。它把组统计贴回每一行,不压行。若你只要各组一个数、明细不要了,请改用 「聚合计算」。
Q2:不写结果表名和不写新列名时,分别会发生什么?
答:不写结果表名,就地在原表加列。写出新表时,源表不动。没起新列名时,原文案例中合计列为「销售额_组内合计」,占比列为「销售额_组内占比」;点名则用你写的列名(如「大区销售额」)。
Q3:组内第几名、没有分组的行级公式,能写在本算子里吗?
答:组内第几名请用 「明细排名」。没有分组、只是本行公式(如单价×数量)请用 「新增列」。本算子的统计量必须带分组。
Q4:相对本组做偏离或标准化,需要另找算子吗?
答:原文将「相对本组做偏离或标准化」列为本算子适用需求。提示词写清按谁分组、贴什么即可;不要为此改写成「聚合计算」压行。
六、 关联算子导航
- 若只需各组一行合计、明细不要了:请参考 数据统计 · 聚合计算
- 若需组内第几名或百分位,而不是合计/占比:请参考 数据统计 · 明细排名
- 若需没有分组的行级公式加列:请参考 数据处理 · 新增列
- 若需沿日期做近 N 天或从头累计,而不是按组贴一个合计:请参考 数据统计 · 累计统计
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 组内加列案例