接龙成本利润核算 Skill
触发条件
当用户提供接龙表格的链接或日期,并发送各商品的成本数据时调用。
- 有链接:直接打开链接读取表格
- 只有日期(如"核算7月16的接龙"):搜索文件名
接龙_2026-07-16 - 找到 → 正常读取
- 没找到 → 搜索
接龙_找出所有接龙文件→从文件名提取日期→按日期排序→取最近5条→列给用户选 - 用户选之前,不进行任何计算和表格修改
🔒 硬性规则(必须遵守)
- 严禁修改 Sheet 1(明细透视表)和 Sheet 2(商品订单汇总) — 利润核算 Skill 只能读取这两个表,不允许以任何理由修改它们的单元格内容、行列结构或公式
- 所有销售数据直接读取在线表格 — 不从对话上下文、历史记录或记忆推测,全部以当前表格中的数据为准
- 所有计算列必须使用表格公式,不允许填入纯数值。跨表引用的原始数据(如售出份数从 Sheet 1 合计行读取)属于数据读取,不算计算列
- 进货单价保持用户输入的原始单位 — 用户说
进79元/件就是 79元/件,不要自己换成元/个或元/斤。只有用户明确说了进X元/斤才按斤算 - 自留扣除规则:
- 若进货单位与销售单位一致(如进20元/份,售价28元/4斤同属按份卖)→ R = G × E(公式计算)
- 若进货单位与销售单位不一致且无法换算(如进79元/件vs 售价2.5元/斤)→ R 填0,由用户手动填写
- 判断标准:能否从用户输入中直接得到"每自留单位多少钱"——能就公式,不能就0
输入格式
核算这个表:https://docs.qq.com/sheet/xxxxx
成本:
西瓜 进79元/件 总3件 自留1个
香蕉 进9.5元/件 总4件
蟠桃 进20元/份 总6份 自留1份
晒辣椒 进7元/份 总3份
榴莲肉 进52元/份 总1份
葡萄 进24元/份 总2份 售后 坏果1份(赔24元)
大蒜 进5元/份 总3份 自留1份
字段说明
| 关键词 | 含义 | 示例 |
|---|---|---|
进X |
进货单价(保持原始单位) | 进79元/件、进9.5元/件、进20元/份 |
总X |
进货总量 | 总3件、总4件、总6份 |
自留X |
自己留用的数量(单位同进货) | 自留1个、自留1份 |
售后 |
售后详情入口 | 售后 ... |
顾客退X |
顾客原因退货量 | 顾客退2斤 |
坏果X(赔Y) |
质量退货量+供应商赔付单价 | 坏果1份(赔24元) |
⚠️ 禁止行为
- ❌ 猜测"一个西瓜大概5斤"并据此换算单价
- ❌ 将进货价从元/件换算成元/个或元/斤(除非用户明确写了
进X元/斤) - ❌ 自行推断用户没提供的数据
- ❌ 修改 Sheet 1 或 Sheet 2 的任何内容
售出单位的确定(从列名提取每份斤数)
从 Sheet 1 表头中的 商品名(价格原文) 提取售出单位:
| 列名格式 | 每份斤数(D) | 说明 |
|---|---|---|
麒麟瓜(2.5元/斤) |
1 | 按斤卖,每份=1斤 |
彩虹蟠桃(28元/4斤) |
4 | 按4斤/份卖 |
皇帝蕉(13.9元/箱) |
1 | 按箱卖,每份=1箱 |
巨峰葡萄(29.9元/箱) |
1 | 按箱卖 |
猫山王纯榴莲肉(65元/2斤) |
2 | 按2斤/份卖 |
大蒜(7.9元/份) |
1 | 按份卖 |
提取规则(正则):
- X元/斤 → 每份斤数 = 1
- X元/X斤 → 每份斤数 = 中间的数字
- X元/箱、X元/盒、X元/罐、X元/份 → 每份斤数 = 1
售出(斤) = 售出(份) × 每份斤数
核算流程
第一步:读取表格结构
读取 Sheet 1 的表头、单价行、合计行,确定商品列数、列字母、合计行行号。不硬编码列字母。
第二步:解析成本数据
- 按行解析用户输入
- 进货单价保持用户输入的原始单位和数值,不做任何换算
- 与 Sheet 1 商品列表做模糊匹配
- 无法匹配的商品向用户确认
第三步:追加利润汇总表
在原表格中追加(或覆盖)利润汇总表,所有计算列必须使用公式。
表格结构
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S |
| 序号 | 商品名 | 售价(元/份) | 每份斤数 | 进货单价 | 进货量 | 自留 | 可售量 | 售出(份) | 售出(斤) | 退货客 | 退货坏 | 供应商赔 | 净售出 | 净收入 | 进货总成本 | 自留扣除 | 生意成本 | 毛利 |
各列规则
| 列 | 内容 | 数据类型 | 数据来源 / 公式 |
|---|---|---|---|
| A | 序号 | 数值 | 1, 2, 3 ... |
| B | 商品名 | 文本 | 从 Sheet 1 表头获取 |
| C | 售价(元/份) | 数值 | Sheet 1 第2行单价行对应列的销售单价 |
| D | 每份斤数 | 数值 | 从列名中提取(见上表),如 28元/4斤 → 4,2.5元/斤 → 1 |
| E | 进货单价 | 数值 | 用户输入,保持原始单位(元/件、元/份、元/斤…) |
| F | 进货量 | 数值 | 用户输入,保持原始单位(件、份、斤…) |
| G | 自留 | 数值 | 用户输入(数量),默认0 |
| H | 可售量 | 公式 | =F-G |
| I | 售出(份) | 数值 | 从 Sheet 1 合计行读取(纯数值,跨表引用或手动填入) |
| J | 售出(斤) | 公式 | =I×D |
| K | 退货客 | 数值 | 用户输入,默认0 |
| L | 退货坏 | 数值 | 用户输入,默认0 |
| M | 供应商赔 | 数值 | 用户输入,默认0 |
| N | 净售出 | 公式 | =J-K-L |
| O | 净收入 | 公式 | =(I-(K+L)/D)×C — 只算实际交付给顾客的商品收入,退货部分扣除 |
| P | 进货总成本 | 公式 | =F×E |
| Q | 自留扣除 | 数值/公式 | 能算则公式 =G×E(进货单位与销售单位一致时),不能算则填0 |
| R | 生意成本 | 公式 | 两种计算,统一收口:<br>• 单位一致时:=(J-K)×E/D-M — 已售总成本(斤)/每份斤数×进货单价 - 供应商赔<br>• 单位不一致时:=P-Q-M — 总成本法,自留和供应商赔从总成本中扣除<br>判断逻辑:=IF(E>0, (J-K)×E/D-M, P-Q-M) |
| S | 毛利 | 公式 | =O-R — 净收入减去生意成本,供应商赔已在生意成本中体现 |
合计行
仅合计金额相关的列:净收入(O)、进货总成本(P)、生意成本(R),用 =SUM(...) 公式。
毛利(S) 不直接求和,而是 =O{合计行}-R{合计行}——因为净收入可能被手动抹零调整,用合计行数据算毛利更准确。
数量/重量列(售出、退货等)单位不一致,不加总。
汇总摘要
总进货投入、总收入、总毛利可从合计行直接读取。
格式约定
- 所有计算列必须使用表格公式,不填入纯数值
- 跨表引用的原始数据(售出份数从 Sheet 1 合计行读取)是数据读取,不是计算列,可填数值
- 自留扣除(R):单位一致时用公式
=G×E,不一致时填0供手动调整 - 使用
IF(分母=0, "", 公式)防止除零错误 - 若 MCP 不支持写入公式 → LLM 按公式逻辑计算后填数值,并在表格外标注"请重新核算"
边界情况
| 场景 | 处理方式 |
|---|---|
| 用户只发了成本没发链接或日期 | 索要链接或日期 |
| 用户说了日期但搜不到对应表格 | 搜索 接龙_ 找出所有接龙文件,提取日期找最近的列给用户选。选前不算账 |
| 用户只发了链接/日期没发成本 | 列出商品列表,索要成本数据 |
| 商品名匹配不上 | 模糊匹配,不确定时请用户选择 |
| 利润表已存在 | 覆盖重写 |
| 自留 > 进货量 | 提示异常 |
| 坏果未提供赔付单价 | 默认赔=进货单价 |
| 数据看起来异常(如售出数量远超进货量、毛利率极高或极低等) | 仅提醒用户确认,不擅自修改表格数据。尊重用户录入的数据,用户确认无误后以用户数据为准 |