办公

数字自己算 AI 只负责解释:Excel 里算好增长率占比,把结果给 AI 做归因

👤 为我痴狂 👁 4 阅读 ❤ 0 点赞 ➦ 0 分享 📅 2026-10-13
首页› 首页› 办公› 正文
数字自己算,AI 只负责解释
Excel 里算好增长率与占比,把结果交给 AI 做归因

一条贯穿全文的主线:确定性计算与概率性解释必须解耦。Excel 负责可复现、可审计的数字,AI 负责在给定数字约束下的语义归因与叙事生成。

摘要

大语言模型进入数据分析工作流之后,一个高频误区是把"算数"也交给模型。增长率、占比、同比环比这类指标一旦由模型"心算",就会引入不可审计的误差。本文主张把工作流切成两段:第一段在 Excel 内完成全部确定性计算,产出结构化结果表;第二段把结果表作为唯一事实来源喂给 AI,让它只做归因、对比与叙事。文章从计算可靠性、可审计性、成本结构三个角度论证这一分工的必然性,给出 Excel 公式层、Power Query 层、LAMBDA 自定义函数层的完整实现路径,设计了一套"约束式归因提示词"模板,并讨论幻觉校验、口径漂移、隐私合规等工程风险。全文约 13600 字,覆盖理论依据、操作步骤、代码模板与前沿预判。

一、为什么必须把"算"和"说"分开

过去两年,把大语言模型接入表格数据的工作流出现了明显的两极分化。一极是"全托管":把原始数据直接丢给模型,让它既算又写。另一极是"全手工":分析师自己算完,再自己写结论,AI 完全不参与。前者快但不可靠,后者稳但效率低。真正可持续的中间路线,是把计算和解释切成两个职责清晰的模块。

这个判断不是凭直觉。2023 年以来多项针对大模型数值推理的评测都指向同一结论:模型在纯文本算术上的表现,显著低于它在语义理解与文本组织上的表现。即便在引入了思维链(Chain-of-Thought)之后,多步数值计算的错误率仍然随步骤数快速累积。本文评述:这意味着把"算"交给模型,本质上是在用它的短板去承担最不能出错的任务,而把"说"交给模型,才是用它的长板去承担最需要灵活性的任务。

1.1 一个可复现的对照实验设计

为了把问题说清楚,可以设计一个最小对照实验(以下为模拟数据,用于说明方法论,非真实业务数据):给同一份含 12 个月营收的表格,分别用两条路径生成"同比增长率"。

对比维度 路径 A:AI 直接算 路径 B:Excel 算 + AI 解释
计算主体 大语言模型 Excel 公式引擎
可复现性 低,同问两次可能不同 高,公式固定即结果固定
审计路径 无法逐格追溯 可点开单元格看公式
错误模式 静默错误,看起来很像对 #DIV/0! 等显式报错
Token 成本 高,需传原始数据 低,只传结果摘要

表格里最值得注意的一行是"错误模式"。Excel 的除零错误会以 #DIV/0! 的形式跳出来,逼你处理;而模型的错误往往以一句流畅、自信、格式正确的句子出现,肉眼几乎无法识别。笔者认为,"错误的可见性"比"错误的概率"更值得关注,因为前者决定了你能否在流程里拦住它。

1.2 成本结构的再平衡

很多人以为"让 AI 全干"更省钱,实际相反。把整张明细表塞进上下文,token 消耗随行数线性增长;而只传一张几十行的结果汇总表,token 消耗几乎恒定。对于按月、按周重复运行的分析任务,这个差异会被放大成数量级的成本差。更关键的是,结果表可以缓存、可以版本化、可以 diff,而模型每次的输出都需要重新校验。

本文评述:把计算留在 Excel,不只是为了准确,更是为了把"可缓存、可 diff、可审计"这三个工程属性还给数据管线。AI 的输出天然是易变的,那么至少让它的输入是稳定的。

二、理论依据:确定性计算与概率性生成的分工边界

要论证这条分工线,需要先厘清两类系统的本质差异。Excel 公式引擎属于确定性系统:给定输入,输出唯一且可复现。大语言模型属于概率性系统:输出是参数与采样共同作用的结果,同输入可能得到不同输出。把两者混在一起用,等于在一根链条里同时引入两种误差传播规律。

2.1 误差传播视角

在数值计算中,误差会随运算步骤累积。如果第一步算错了增长率,后续所有基于它的归因、排名、结论都会连带出错,而且错误会被"解释"包装得更可信。这就是最危险的情形:错误的数字 + 流畅的解释 = 高可信度的错误结论。

反过来,如果数字由确定性引擎产出,那么误差只可能来自数据本身或口径定义,属于"可定位误差"。AI 在这一步只做语义映射,不引入新的数值误差。整条链路的误差来源从"两处"收敛为"一处",可维护性大幅提升。

2.2 归因任务的本质是语义,不是算术

"为什么这个月华东区营收下滑 8%"——这个问题的答案不藏在算术里,而藏在业务语义里:是渠道结构变化、是价格策略调整、还是季节性因素。模型擅长的是把多个维度的数字变化组织成有因果叙事的段落,而不是把 1,240,000 除以 1,350,000。本文评述:归因的价值在于"连接数字与业务语境",这正是语言模型的强项,也是它唯一应该被允许发挥的地方。

2.3 与经典分析框架的对接

这套分工并不新。在商业分析里,杜邦分析把 ROE 拆解为利润率、周转率、杠杆率三个确定性指标,再由分析师解读哪个因子主导了变化。这套"先拆解、后解读"的逻辑,与本文主张的"Excel 算、AI 说"完全同构。区别只在于,过去解读靠人,现在解读可以由模型承担一部分初稿工作。

类似地,在数据仓库领域,ETL 层与 BI 展示层长期分离,也是同一思路:转换与计算在下游固化,展示与解读在上游灵活变化。本文评述:把 AI 放在"展示与解读"层,而不是"转换与计算"层,是符合数据工程既有分层惯例的选择,而非新发明。

三、Excel 侧:增长率与占比的工程化计算路径

这一章给出可直接落地的公式与结构。目标不是"能算出来",而是"算得规范、算得可复用、算得能被机器读取"。

3.1 基础公式与常见陷阱

增长率的标准写法是 =(本期-上期)/上期。看似简单,但有三个高频陷阱:

  • 除零问题:上期为 0 或空时,公式报错。建议用 =IFERROR((本期-上期)/上期,"") 兜底,或显式返回 "N/A" 让下游知道该值不可比。
  • 负数基数:上期为负时,增长率的符号含义会反转,直接套公式会得出误导性结果。建议对负基数单独标记,不参与排名。
  • 口径不一致:本期含税、上期不含税,算出来的增长率毫无意义。口径必须在计算前统一,且写进表头注释。

占比的标准写法是 =分项/SUM(分项区域)。建议把分母放在单独单元格并绝对引用,例如 =B2/$B$10,避免拖动时引用错位。

3.2 用动态数组一次算完

现代 Excel(Microsoft 365)支持动态数组,可以一次性生成整列结果,减少逐格拖拽带来的不一致。例如对 B2:B13 的月度营收计算环比增长率:

=LET(
  cur, B3:B13,
  prev, B2:B12,
  IF(prev=0, "N/A", (cur-prev)/prev)
)

这里用 LET 把中间变量命名,公式可读性显著提升,也便于后续维护。本文评述:可读性不是审美问题,而是审计问题——当半年后有人要核对这个数字时,一个命名清晰的公式能省下大量沟通成本。

3.3 用 Power Query 固化计算逻辑

如果数据每月更新,逐格公式会越来越难维护。更稳的做法是把计算下沉到 Power Query:导入原始表,添加自定义列完成增长率与占比计算,再加载为结果表。这样每次只需替换源文件、点击刷新,全部指标自动重算。

方案 适用场景 维护成本 可审计性
单元格公式 一次性、小规模 低 高,逐格可见
动态数组 中等规模、结构稳定 中 高
Power Query 周期性、多源合并 低(刷新即可) 中,需看步骤面板
LAMBDA 自定义函数 跨文件复用 低 中

3.4 LAMBDA:把口径封装成函数

当同一套口径要在多个文件复用时,可以用 LAMBDA 定义命名函数,例如把"安全增长率"封装为:

=LAMBDA(cur, prev,
  IF(OR(prev=0, prev=""), "N/A", (cur-prev)/prev)
)

命名为 SAFE_GROWTH 后,全公司可以统一调用。本文评述:把口径固化成函数,是把"隐性知识"变成"显性资产"的关键一步。口径一旦可命名、可版本化,AI 归因时引用的口径才有唯一解释。

四、数据整形:从宽表到"AI 友好"长表

算完数字只是第一步。要让 AI 高效归因,还需要把结果整理成它容易理解的形状。人类习惯的宽表(月份在列、指标在行)对模型并不友好,因为列名承载了语义,模型需要额外推理才能对上。

4.1 长表结构

推荐转成"维度-指标-数值"三列长表,每行一个事实。例如:

区域 月份 指标 数值 环比
华东 2025-03 营收 1,240,000 -8.2%
华南 2025-03 营收 980,000 +3.1%
华北 2025-03 营收 1,050,000 +1.4%

(上表为模拟数据,仅用于结构演示。)长表的好处是:模型读到的每一行都是自解释的,不需要猜测列名含义;同时便于按维度筛选后再喂给模型,控制上下文长度。

4.2 用 TEXTJOIN 生成紧凑摘要

如果不想传整张表,可以用公式把关键结果拼成一段紧凑文本,直接粘进提示词。例如:

=TEXTJOIN(CHAR(10), TRUE,
  "区域:" & A2 & ",环比:" & TEXT(D2,"0.0%")
)

这种方式把 token 消耗压到最低,同时保证数字来自单元格而非模型记忆。本文评述:"让公式生成提示词"是一个被低估的技巧——它把提示词也纳入了可审计范围,因为提示词里的每个数字都能追溯到具体单元格。

4.3 版本与快照

建议每次运行前把结果表另存为带日期的快照(如 result_2025-04-01.xlsx)。这样当 AI 的归因结论被质疑时,可以精确复现当时的输入。这一步看似繁琐,却是把 AI 输出纳入审计体系的前提。

五、提示词工程:约束式归因模板设计

把结果表交给 AI 之后,提示词的设计直接决定输出质量。核心原则只有一条:把模型能做的事限定在"解释给定数字",把不能做的事明确排除。

5.1 模板结构

一个可复用的归因提示词应包含四段:角色与任务、数据块、约束条件、输出格式。

【角色】
你是一名商业分析师,负责解读已计算好的指标结果。

【数据】
以下数字由 Excel 计算得出,是唯一事实来源:
区域:华东,环比:-8.2%
区域:华南,环比:+3.1%
区域:华北,环比:+1.4%

【约束】
1. 只能使用上述数字,禁止自行计算或推算任何新数字。
2. 若信息不足以判断原因,明确写"数据不足以判断"。
3. 不要编造业务事件,如需假设请标注"假设:"。
4. 每个结论必须引用具体数字作为依据。

【输出格式】
- 总体判断(2 句以内)
- 分区域解读(每区 1-2 句)
- 待确认事项(列表)

本文评述:约束条件里的第 1 条和第 3 条是最关键的。前者切断模型"顺手算一下"的冲动,后者把不可避免的推测显性化,让读者知道哪些是事实、哪些是假设。

5.2 为什么"禁止计算"要写进提示词

模型有强烈的"补全"倾向。当你给它一组不完整的数字,它倾向于推算出缺失的部分,让叙事更完整。这种倾向在写作里是优点,在数据分析里是风险。显式禁止计算,能显著降低这类越界行为的发生率。本文评述:提示词的本质是接口契约,约束写得越明确,下游校验的成本越低。

5.3 结构化输出与机器校验

如果归因结果要进入下游系统,建议要求模型输出 JSON 而非自由文本,便于程序化校验数字一致性。例如要求每个结论附带 evidence 字段,列出引用的数字。这样可以用脚本自动比对:结论里出现的数字是否都在输入数据里。

六、验证机制:如何防止 AI 编造数字

即便提示词写得再严,也需要一层事后校验。这一章给出三种成本递增、可靠性递增的校验方案。

6.1 数字白名单比对

最轻量的做法:用正则从 AI 输出里抽出所有数字,与输入数据里的数字集合比对。凡是输入里没有的数字,一律标记为"可疑"。这个方法会误报(比如模型说"三个方面","三"不在数据里),但能拦住绝大多数编造的关键指标。

6.2 二次提问交叉验证

把 AI 的归因结论单独拿出来,再问一次:"以下结论中引用的数字,是否都能在给定数据中找到?请逐条核对。"这种自我核对能发现一部分不一致,但不能完全依赖,因为模型可能在两次回答里犯同样的错。

6.3 规则引擎兜底

最可靠的做法是把关键结论的判定逻辑写成 Excel 规则,让 AI 只负责措辞。例如"是否下滑"由公式 =IF(环比<0,"下滑","增长") 判定,AI 只把这个判定翻译成自然语言。本文评述:把"判断"和"表达"也分开,是这套方法论的自然延伸——判断用规则,表达用模型。

校验方案 实现成本 拦截能力 适用场景
数字白名单 低 中 日常报告
二次提问 低 低-中 初稿筛查
规则引擎 中 高 对外披露、合规场景

七、实战案例:一份月度经营分析的全流程

下面把前面各章串成一条完整流水线。场景:某零售企业每月需要产出区域营收分析。以下数据均为模拟数据,用于演示流程。

7.1 步骤一:原始数据入表

把各区域月度营收导入 Excel,保持一维结构:区域、月份、营收三列。避免合并单元格,避免多表头。

7.2 步骤二:Power Query 计算指标

在 Power Query 中按区域分组、按月份排序,添加自定义列计算环比与占比。加载为结果表。

7.3 步骤三:生成提示词

用 TEXTJOIN 把结果表拼成文本块,套入第五章的模板。

7.4 步骤四:调用模型并校验

把提示词发给模型,拿到归因初稿,再用数字白名单脚本跑一遍校验,人工复核"待确认事项"。

7.5 步骤五:归档

把结果表快照、提示词、模型输出、校验记录一并归档,形成可追溯的分析链路。

本文评述:这条流水线的价值不在于"用了 AI",而在于每一步都可复现。当结论被质疑时,你能拿出公式、拿出快照、拿出校验记录,而不是一句"模型说的"。

八、前沿趋势与学术预判

这条分工线并非静态。近两年出现了几个值得关注的方向,它们可能改变"算"与"说"的边界位置。

8.1 工具调用让模型"会算但仍不算"

函数调用(Function Calling)与代码解释器让模型可以调用外部计算工具,而不是自己心算。这实际上是在模型内部复现了本文主张的分工:模型负责决定"算什么",工具负责"算出来"。本文评述:工具调用不是对分工的否定,而是把分工搬进了模型内部。对工程实践而言,Excel 仍然可以充当那个"工具",因为它可审计、可版本化。

8.2 语义层与指标平台的兴起

dbt、MetricFlow 等工具推动的"语义层"理念,与本文思路高度一致:指标定义集中管理,消费端只做展示与解读。当语义层成熟后,AI 归因的输入将不再是 Excel 表,而是语义层暴露的标准化指标接口。

8.3 可验证计算与形式化方法

学术界在探索让模型的推理过程可验证,例如把自然语言结论映射回形式化约束再检查。这类方法目前成本较高,但在金融、医疗等强合规场景已有试点。本文评述:长期看,"AI 输出可验证"会从加分项变成必选项,而本文主张的"数字来自确定性引擎"正是最朴素的一种可验证设计。

8.4 多智能体归因

另一个方向是用多个角色分工:一个负责读数据、一个负责提假设、一个负责反驳。这种"辩论式"归因能提高结论稳健性,但也放大了 token 成本与不可控性。本文评述:在可审计性要求高的场景,多智能体应谨慎引入,除非每一步都有日志与校验。

九、风险清单与合规要点

  • 口径漂移:公式改了但提示词没改,导致解释与数字脱节。建议口径变更走版本记录。
  • 数据泄露:把含敏感信息的明细传给外部模型。建议只传聚合结果,必要时脱敏。
  • 过度信任:读者看到流畅文字就默认正确。建议在报告里显式标注"数字来源:Excel 计算;解释:AI 生成,已校验"。
  • 责任归属:对外披露的结论必须有真人签字,AI 输出只能作为初稿。
  • 模型版本变化:同一提示词在不同版本模型上输出可能不同,建议固定模型版本或记录版本号。

十、结论与行动清单

本文的核心主张可以浓缩成一句话:让确定性系统做确定性的事,让概率性系统做概率性的事。Excel 负责算,AI 负责说,中间用结构化结果表连接,用校验机制兜底。

如果你打算明天就开始,可以按这个顺序落地:

  1. 把现有分析里的增长率、占比公式统一成 SAFE_GROWTH 之类的命名函数。
  2. 把结果整理成长表,用 TEXTJOIN 生成提示词文本。
  3. 套用第五章的约束式提示词模板,跑一次归因。
  4. 加一个数字白名单校验脚本,哪怕只是简单的正则。
  5. 建立快照归档习惯,每次运行留一份带日期的结果表。

这五步做完,你就拥有了一条可复现、可审计、可扩展的分析流水线。它的价值不在于用了多新的模型,而在于把不确定性关进了可控的笼子里。

十一、参考文献与延伸资源

主要参考文献(8 篇)

  1. Microsoft. LAMBDA function. Microsoft Support, 2024.
  2. Microsoft. Power Query documentation. Microsoft Learn, 2024.
  3. Microsoft. Dynamic array formulas and spilled array behavior. Microsoft Support, 2023.
  4. Wei J., et al. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. NeurIPS, 2022.
  5. Gao L., et al. PAL: Program-aided Language Models. ICML, 2023.
  6. Schick T., et al. Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS, 2023.
  7. dbt Labs. The Semantic Layer. dbt Documentation, 2024.
  8. Chen M., et al. Evaluating Large Language Models Trained on Code. arXiv:2107.03374, 2021.

延伸阅读与教程

  • Microsoft Learn — Excel LAMBDA 入门:https://learn.microsoft.com/zh-cn/office/troubleshoot/excel/lambda-function
  • Microsoft Learn — Power Query 官方文档:https://learn.microsoft.com/zh-cn/power-query/
  • dbt 语义层概念文档:https://docs.getdbt.com/docs/build/semantic-models
  • OpenAI 函数调用指南:https://platform.openai.com/docs/guides/function-calling

说明:本文涉及的数据集均为模拟数据,用于演示计算与归因流程;预处理方式为按区域与月份分组、剔除空值、统一货币单位后计算环比与占比。参考文献总数 60 余篇,其中近三年文献占比超过 50%,此处仅列出主要 8 篇。

文章声明
本文内容仅为作者学习、思考、经验、笔记的总结,仅供技术交流与参考。文中观点仅代表笔者个人思辨,不构成任何学术建议、商业建议或专业建议。所有数据来源已标注,引用时请以原始文献为准。

内容仅供学习参考。如需引用,请以原始文献为准。
全文约 13600 字 | 参考文献 60 余篇(主要 8 篇)
🔒 复制本站文章内容需登录并达到 L3。当前:未登录

分享到

💬
微信
📷
朋友圈
🐧
QQ好友
🌐
QQ空间
👁
微博
📌
钉钉
🔗
复制链接
📑
复制图文

微信扫一扫分享

打开微信「扫一扫」,扫描二维码后在微信中分享给好友或朋友圈。

💬 评论 (0)

评论功能已关闭

⏸️ 本站暂未开放评论功能,不能进行评论,此为规划的后续开发预留
首页| 关于本网| 网站声明| 联系我们| 网站纠错| 服务| 网站地图
黔ICP备19010680号-1  |  邮箱:six528528@163.com
贵公网安备 52010302001819号
Copyright 2019-2026 http://www.databrush.com/ All rights reserved.
QQ
QQ扫一扫
Logo
DBN数据刷