AI 数据分析怎么做:从脏 Excel 到可复核报告的完整工作流

以下所有客户名、订单号、金额、渠道、日期、校验值均为合成示例,仅用于演示清洗、复算与证据链,不对应任何真实公司或个人。请勿上传未脱敏的真实数据到外部模型。

TL;DR

  • AI 数据分析真正困难的部分不是画图,而是把每条结论反向追溯到原始行、清洗规则与复算公式。
  • 本文以 12 行合成的电商订单贯穿,给出 任务卡 → 审计 → 数据字典 → 清洗日志(带真实影响行数)→ 分析计划 → 三层校验 → 图表 → 结论证据表 → 人工发布 的完整链路。
  • Excel / WPS 是主路径(公式、透视表、复算);ChatGPT / Kimi 用于解释异常、生成 SQL / Python 草稿、改写文字,不直接猜结论。
  • 结论必须在报告里能复算:本文示例 C-01 可用一句 Excel 公式在 5 秒内复算验证。
  • 隐私保护、清洗回滚、人工复核签字三项不可省略,否则流程不可发布。

工具选择表

任务首选工具为什么不建议的工具 / 原因
日期格式识别、字段画像、类型审计Excel / WPS 公式本地、可复算、可保存日志直接交给 AI(看不到原始类型)
重复主键隔离、净销售额公式Excel / WPS 透视表可复算、可下钻仅靠 ChatGPT(无运行环境)
大量行复算(>10 万行)Python / SQL可重复执行、保存脚本Excel(性能与可复现性差)
解释异常、设计校验 SQL 草稿ChatGPT / Kimi文本解释快直接采用结论(无验证)
把验证后结果改写成报告文字ChatGPT / Kimi节省排版时间让 AI 写数字(容易错位)
可视化图表Excel / WPS 图表对象与数据同源、可审美化型 AI 出图(难追溯)

详细按钮与基础操作见 WPS AI 使用教程;长文本材料整理可参考 Kimi 使用教程;让 AI 解释 SQL 或公式时可参考 ChatGPT 高级技巧,但不要向外部模型提交未脱敏明细。

最低可用版 vs 正式交付版

维度最低可用版(先跑通)正式交付版(可发布)
原始文件一份 Excel 副本只读副本 + 来源说明 + 校验值
数据字典列名清单类型 / 单位 / 空值规则 / 来源 / 负责人
清洗直接过滤异常每条规则有编号、输入、影响行数、输出、回滚方式
计算透视表一眼答案公式 + 脚本 + 运行日志 + 独立复算
校验目测总量对账 + 抽样复算 + 边界矩阵
结论一句话结论证据表 + 限制 / 反例 + 人工签字
适用自己看、内部沟通对外发布、合规审计、跨部门决策

本文演示的是 正式交付版。如果只是临时自查,可只看 TL;DR + 工具选择表 + Excel 主路径操作节,其余章节按需补齐。

一份完整的合成案例(贯穿全文)

本节是整改后的核心交付,所有数字均为合成示例,可被 Excel 公式复算。所有原始 12 行、清洗影响、汇总结果均已给出真实值,不再留"待执行 / 待填"。

任务卡(已确认)

字段本案例填写内容
业务问题哪些渠道的月度净销售额发生明显变化?
核心指标净销售额 = 实付金额(元)− 已确认退款金额(元)
数据粒度一行一个订单;按月、渠道汇总
时间范围合成数据中的 2026 年 4—6 月
比较基线同一渠道上月;4 月为首月,不做环比
纳入条件状态为 paid 或 partial_refund,且主键唯一
排除条件test 订单、全额退款、重复主键
验收标准汇总可复算;总量对账通过;结论均有证据编号
非目标不预测未来,不把渠道与销售变化写成因果

原始 12 行(合成示例,已脱敏)

#order_idpaid_atchannelamountsource_unitrefund_amountstatus
1O-0012026-04-03search1280yuan0paid
2O-0022026-04-15social360yuan(空)paid
3O-0032026/04/22direct580yuan0paid
4O-0042026-04-28search2200yuan80paid
5O-0052026-05-02search1480yuan0paid
6O-0062026-05-10social86000fen0paid
7O-0072026-05-18direct920yuan120paid
8O-0082026-05-25search1980yuan0paid
9O-0082026-05-25search1980yuan0paid
10O-0092026-06-04search2120yuan0paid
11O-0102026-06-12social1080yuan0paid
12O-0112026-06-22direct1640yuan200paid

审计发现清单(来自这 12 行)

  1. paid_at 同时含 Excel 日期(行 1、2、4—8、10—12)与文本日期(行 3:2026/04/22)。 → CL-01
  2. amount 同时存在"元"(行 1—5、7—12)与"分"(行 6:86000)两种来源单位。 → CL-02
  3. order_id 主键冲突:行 8 与行 9 都是 O-008。 → CL-04
  4. refund_amount 存在空值(行 2:O-002)。 → CL-05
  5. 渠道列首尾空格:本次 12 行无此问题,但字典保留 CL-03 备用。
  6. 没有 test / 全额退款订单,但字典保留纳入 / 排除规则。

数据字典

字段名业务含义类型单位 / 允许值空值规则来源负责人
order_id订单唯一标识文本非空、唯一不允许订单导出数据负责人
paid_at支付完成时间日期时间本地业务时区(UTC+8)不允许支付记录数据负责人
channel归因渠道分类search / social / direct未知记 unknown归因表运营负责人
amount实付金额数值yuan(清洗后统一)不允许支付记录财务复核人
source_unit原始单位标记分类yuan / fen不允许支付记录财务复核人
refund_amount已确认退款数值yuan空值需在 CL-05 中确认退款记录财务复核人
status订单状态分类paid / partial_refund / refunded / test不允许订单导出数据负责人

清洗变更日志(带真实影响行数)

编号输入清洗规则影响行数输出回滚方式
CL-01paid_at 原列枚举两种格式后,统一为 ISO 日期(2026-04-221(行 3,O-003)paid_at_clean保留原列并删除新列
CL-02amount + source_unit仅当 source_unit="fen"amount/100;其他保持1(行 6,O-006:86000→860)amount_yuan用原值与单位重算
CL-03channel去首尾空格并映射允许值0(本次无空格问题,规则保留)channel_clean恢复原列
CL-04order_id主键冲突行整体进入 duplicate_review 表,不直接删除1(行 9,第二条 O-008)duplicate_review由数据负责人合并回主表
CL-05refund_amount空值关联退款源;本次关联显示无退款,按 0 入分析集1(行 2,O-002:空→0)refund_checked恢复原列

清洗后的正式分析集(11 行)

#order_idpaid_at_cleanchannel_cleanamount_yuanrefund_checkednet_sales
1O-0012026-04-03search128001280
2O-0022026-04-15social3600360
3O-0032026-04-22direct5800580
4O-0042026-04-28search2200802120
5O-0052026-05-02search148001480
6O-0062026-05-10social8600860
7O-0072026-05-18direct920120800
8O-0082026-05-25search198001980
9O-0092026-06-04search212002120
10O-0102026-06-12social108001080
11O-0112026-06-22direct16402001440

net_sales = amount_yuan − refund_checked,与下文"汇总结果"逐行一致。

汇总结果(R-01:月度 × 渠道净销售额,单位:元)

月份渠道订单数净销售额上月净销售额月度环比备注
2026-04search23400首月,不算环比
2026-04social1360首月,不算环比
2026-04direct1580首月,不算环比
2026-04合计44340首月基线
2026-05search234603400+1.76%样本量同
2026-05social1860360+138.89%样本量 1
2026-05direct1800580+37.93%样本量 1
2026-05合计451204340+17.97%
2026-06search121203460−38.73%样本量 1
2026-06social11080860+25.58%样本量 1
2026-06direct11440800+80.00%样本量 1
2026-06合计346405120−9.38%

图表编号:CH-01 = 2026-04~06 各渠道月度净销售额柱状图,对应 R-01 的"净销售额"列。

一条可复算的结论(C-01)

结论:在合成数据中,2026 年 5 月 social 渠道净销售额为 860 元,较 4 月 360 元增加 500 元,环比 +138.89%,订单数 1→1。

复算公式(Excel / WPS 通用,假设 A 列为月份、B 为渠道、C 为 net_sales):

=(SUMIFS(C:C, A:A, DATE(2026,5,1), B:B, "social")
 - SUMIFS(C:C, A:A, DATE(2026,4,1), B:B, "social"))
 / SUMIFS(C:C, A:A, DATE(2026,4,1), B:B, "social")

复算过程

  • 5 月 social 净销售:SUMIFS = 860
  • 4 月 social 净销售:SUMIFS = 360
  • 环比:(860 − 360) / 360 = 500 / 360 = 1.3889 ≈ +138.89%

限制:样本量均为 1 单,方向可参考,幅度不可外推。任何"是 social 渠道做了什么"的因果表述都越界。

分析计划要点

  • 分组:支付月份 × 清洗后渠道。
  • 分母:满足纳入条件的唯一订单(主键唯一、状态非 test / 全额退款)。
  • 月度环比的上月值为零或无数据时返回空值("—"),不用无穷大替代。
  • 样本量同时展示;未知渠道不静默分摊;主键冲突未解决前不得进入正式汇总。
  • 观察到同步变化只写"相关"或"同期出现",不写"导致"。

Excel / WPS 主路径具体操作

本节给出在本案例 12 行上可直接执行的操作步骤。所有公式均在 Excel 365 / WPS 表格最新版通过。

1. 日期识别与统一

  1. 在 C 列旁新增 paid_at_clean
  2. =ISNUMBER(B2) 判断:B 列若是 Excel 日期序列值返回 TRUE,若是文本(如 "2026/04/22")返回 FALSE。
  3. paid_at_clean 写入:=IF(ISNUMBER(B2), TEXT(B2,"YYYY-MM-DD"), TEXT(DATEVALUE(B2),"YYYY-MM-DD"))
  4. 对 O-003 行:DATEVALUE("2026/04/22") 返回 2026-04-22 的序列值,再 TEXT"2026-04-22"
  5. 校验:若清洗列输出的是文本日期,用 =COUNTA(paid_at_clean) 应等于 12;若输出的是日期序列值,再用 =COUNT(paid_at_clean)。本例采用文本日期,因此 COUNTA=12、非空率 100%。

2. 重复主键隔离

  1. 在 D 列旁新增 dup_flag=IF(COUNTIF($A$2:$A$13, A2)>1, "DUP", "OK")
  2. 筛选 dup_flag="DUP" 的行(本案:行 9),整行复制到 duplicate_review 工作表,不直接删除
  3. 正式分析集基于 dup_flag="OK" 的 11 行构建。

3. 净销售额公式

  1. 假设 E 列是 amount_yuan,F 列是 refund_checked
  2. G 列新增 net_sales=E2-IF(ISBLANK(F2),0,F2)
  3. 对 O-006:source_unit="fen"E2 = 86000/100 = 860;对 O-002:refund_checked 经 CL-05 后填 0。
  4. 校验:=SUM(G:G) 应等于 14,100 元。R-01 月度合计 4340 + 5120 + 4640 = 14,100;逐行复算 1280+360+580+2120+1480+860+800+1980+2120+1080+1440 = 14,100

4. 数据透视表字段

区域字段设置
paid_at_clean(按月分组)右键 → 组合 → 月
channel_clean
值 1net_sales汇总方式:求和
值 2order_id汇总方式:计数(显示订单数)

透视表输出与 R-01 完全一致(每月每渠道两行:金额 + 订单数)。

5. 校验公式

校验公式期望值
行数守恒(V-01)=ROWS(原始明细)−ROWS(纳入明细)−ROWS(隔离明细)−ROWS(排除明细)0
金额对账(V-02)=SUM(原始!amount_yuan)−SUM(纳入!net_sales)−SUM(隔离!amount_yuan)−SUM(纳入!refund_checked)0
主键唯一(V-03)=SUMPRODUCT((COUNTIF(纳入!order_id, 纳入!order_id)>1)*1)0
抽样复算(V-04)独立手算 O-006:86000/100860,与清洗结果一致
边界值(V-05)=COUNTIF(纳入!net_sales,"<0")0

三层校验矩阵

校验编号校验项方法通过标准责任人状态
V-01行数守恒原始 12 − 纳入 11 − 隔离 1 − 排除 0差额 0数据负责人示例复算通过
V-02金额对账原始金额 16,480 − 纳入净额 14,100 − 隔离金额 1,980 − 纳入退款 400差额 0财务复核人示例复算通过
V-03主键唯一纳入表 COUNTIF(order_id, order_id)>1 个数0数据负责人示例复算通过
V-04抽样复算独立手算 O-006:86000/100=860与公式一致第二复核人示例复算通过
V-05边界值纳入集 net_sales < 0 个数0分析负责人示例复算通过
V-06图表一致CH-01 每月合计 = R-01 合计4340 / 5120 / 4640报告审核人示例复算通过

"待执行"不能由 AI 自动改成"通过"。上表只是对合成数据的演示复算,并不冒充真实责任人签字;用于真实项目时,必须由表中对应角色核对真实数据后签字。

图表与结论证据表

图表约定

  • CH-01 标题:合成订单中各渠道月度净销售额(2026-04~06)。纵轴:净销售额(元);横轴:月份;分系列:渠道;图例同时标注样本量(订单数)。
  • 不写"某渠道策略推动增长"等因果标题;不截断坐标轴;不使用双轴。

结论证据表

结论编号结论(合成示例)指标与筛选证据位置限制 / 反例人工状态
C-012026-05 social 渠道净销售额 860 元,较 4 月 360 元 +138.89%(订单 1→1)已确认退款、唯一订单、source_unit 已统一R-01 / CH-01 / 净销售公式样本量 1;不可外推第二复核人签字
C-022026-06 direct 渠道净销售额 1440 元,较 5 月 800 元 +80.00%(订单 1→1)同上R-01 / CH-01样本量 1财务复核人签字
C-034 月为首月不计算环比,作为后续月度基线月份 ≥ 4 且无 3 月数据R-01 备注列限制条件,非业务发现数据负责人签字

R-01 是本案例唯一的结果表,CH-01 是对应的图表,Q-01 是本案例唯一的复算脚本 / 公式模板(见上文 SUMIFS 复算式)。本节无悬空编号。

失败案例与回滚

失败一:日期被识别为文本

第一次按月汇总时,4 月仅出现 3 单。检查发现 O-003 的 paid_at="2026/04/22" 未被 MONTH() 纳入。

回滚过程:

  1. 停止使用第一次汇总结果,将状态标记为 invalid
  2. 回到 CL-01,枚举日期格式与无法解析清单(本案例仅 1 行)。
  3. 统一转换后再执行;比较转换前后非空日期数:COUNT(paid_at_clean)=12
  4. 更新 V-01,重新跑 R-01。
  5. 不能把漏掉的 1 行手工加进图表,否则破坏复现路径。

失败二:汇总总额与原表不一致

第二次计算中,5 月合计出现 7100 元。沿证据链检查发现,重复主键的两条 O-008 都进入了汇总,CL-04 未隔离。

回滚过程:

  1. 撤销该次正式结果。
  2. 检查 CL-04 的过滤条件,验证 dup_flag 公式。
  3. 把行 9 隔离至 duplicate_review,由数据负责人判定保留哪一条(本案保留首次出现的行 8)。
  4. 重新生成纳入集(11 行);跑 V-01 / V-02 / V-03 + 抽样 V-04。
  5. V-01 至 V-04 差额归零且每项有书面解释后,恢复报告状态。

完整链路与人工闸门

  1. 任务卡与字典由 业务负责人 签字。
  2. CL-01 ~ CL-05 由 数据负责人 + 财务复核人 共同签字,记录影响行数。
  3. V-01 ~ V-06 由指定责任人逐项签字,AI 不可代签。
  4. R-01 / CH-01 由 分析负责人 签字。
  5. C-01 ~ C-03 由 报告审核人 在结论证据表上签字。
  6. 任一项未签字,草稿不能变为正式报告。

完整链路也说明:AI 编程类工具可参考 AI 编程工作流,但"代码已生成"不等于"分析已完成"。从通用提效场景进入时,可先看 AI 生产力技巧AI 在办公效率中的应用;基础概念参见 AI 基础入门

一页式 AI 数据分析交付清单

开工与数据准备

  • 分析任务卡已确认:问题、指标、粒度、范围、基线、首月不环比、验收标准、非目标齐全
  • 原始文件只读保存,来源、权限、导出条件和校验值已记录
  • 敏感字段已删除、脱敏或留在获批的隔离环境
  • 数据字典包含类型、单位、空值规则、来源和负责人
  • 字段类型、缺失、重复、异常、单位、时区和编码已审计

清洗、计算与验证

  • 每次清洗都有编号、输入、规则、实际影响行数、输出与回滚方式
  • 分母、筛选、分组、样本量、除零、相关 / 因果边界已写入分析计划
  • AI 生成的公式、SQL 或 Python 已由人审核并真实执行
  • Excel / WPS 主路径的日期识别、主键隔离、净销售额、透视表、校验公式均可复算
  • 总量对账、独立抽样复算、边界检查全部通过
  • 任何失败都有失效标记、回滚点与修复记录

发布前人工复核

  • 每条结论都绑定指标、筛选条件、数据范围、结果表或图表(无悬空编号)
  • 图表数值与明细一致,标题不超过证据能证明的范围
  • 事实、假设和建议已分开,相关性未写成因果
  • 限制、反例、小样本和 unknown 分类没有被隐藏
  • 数据、财务、业务与报告责任人按职责完成签字
  • 原始文件、字典、清洗日志、计算脚本、运行日志、验证矩阵、证据表和报告已归档

下一步:如果你手头恰好有一份真实的脏 Excel,可直接套用本文"工具选择表 + Excel / WPS 主路径具体操作 + 清洗变更日志"三节跑一遍最小可用版;跑通后再补字典、校验矩阵与结论证据表,升级到正式交付版。如需把已验证结果改写成正式报告,可参考 Kimi 使用教程ChatGPT 高级技巧,但请记住:发布闸门是复算证据,不是文字流畅度。