---
title: "Claude Code 处理 Excel 数据：读取操作表格"
description: "先决定在对话里算还是让脚本算，给表头也给统计口径；清洗一次只改一类，结果用对账和公式交叉验证。"
updated: 2026-11-13
canonical: https://docai.cc/learn/excel-reading-and-editing/
markdown_mirror: https://docai.cc/learn/excel-reading-and-editing.md
---
## 先决定在哪算

同一张表，处理方式不止一种。先按三个问题选：

| 情况 | 做法 | 代价 |
|---|---|---|
| 表很小，只问几个结论 | 把表粘进对话 | 快，但结果要自己核 |
| 要反复统计、每周都跑 | 让它写公式或脚本 | 前期多花时间，后面省事 |
| 含姓名、电话等个人信息 | 先脱敏，或只在本地脚本里跑 | 多一步，但风险低 |

还有一条常被忽略：数据要不要留档。如果结果要发给别人，输出成 CSV 并附上口径说明，比在对话里截一张图靠谱。

## 给表头，也给口径

只贴数字，模型不知道每一列是什么意思。把表头、前几行和列的含义一起给它，再补上计算规则。

```text
这是门店 3 月的销售明细，列为：日期、门店、订单号、金额、状态。
金额是含税收入；状态为「已取消」的行不计入销售。
先复述你对每列的理解和统计口径，等我确认后再计算。
```

最后那句能省掉大量返工。「销售额」听起来明确，实际至少有三种算法：下单金额、支付金额、扣除退款后的金额。它按其中一种算完，你按另一种去核，数字永远对不上。先让它说清楚打算怎么算，你再决定要不要改。

## 清洗：一次只改一类

真实表格的毛病很多：重复行、电话带横线、日期写法不一、城市后面多个「市」字。不要一口气提十条要求，分批做，每批都能对账。

```text
只做四件事，其他列不要动：
1. 重复行只留一条，并告诉我删了几行；
2. 电话列去掉空格和横线，只留数字；
3. 日期统一成「年-月-日」，月和日补足两位；
4. 城市列去掉结尾的「市」。
输出 CSV，并在最后报告处理前后的行数。
```

「删了几行」「前后行数」是给你核对用的。数字对不上，说明规则误伤了本来不该动的行。清洗完先看被改动的那几列，其他列保持原样，这才叫只改一类。

## 两张表怎么合到一起

员工名册和月度绩效常常分在两个文件里，靠工号对上。这类活最考验字段是否干净。

```text
表 A：员工名册，列是 工号、姓名、部门，约 80 行。
表 B：三月绩效，列是 工号、得分、奖金，约 120 行。
请以表 A 为主表，按工号左连接，输出 工号 | 姓名 | 部门 | 得分 | 奖金。
另外报告两件事：
1. 表 B 里匹配不上表 A 的工号；
2. 表 A 里没有绩效记录的人。
不要用姓名当连接键。
```

连接出错，多半出在键上：工号前后带空格、有的多一个字母前缀、有的被存成数字丢了前导零。先让两边都转成同样的文本格式再连，匹配不上的行单独列出来人工确认，不要让它猜。连完核对行数：左连接的结果应该和主表一样多；多出来说明表 B 的工号有重复，先查重再继续。

表多、每月都要合一次时，把这套步骤写成脚本更省事，思路见[脚本化处理](/learn/scripting-with-claude-code/)。

## 异常用规则扫，不要靠感觉

汇总之外，再让它按明确规则扫一遍异常。规则来自业务，模型只负责执行。

```text
扫描这份销售明细，四条规则各查一遍，命中就给出整行内容：
1. 金额为零或负数；
2. 同一客户同一天下单超过三次；
3. 退款金额大于原订单金额；
4. 客户名、日期、金额任一为空。

没有命中的规则也要写「无」，不要省略。
只输出清单，不要改动数据。
```

「写无」这一条不能省。它只回命中的规则时，你分不清是确实干净，还是漏看了某条。清单出来后逐条核对：同一天同一客户下三单，可能是团购拆单，属于正常业务，不能一律当异常。规则的松紧由你定，模型的价值是不知疲倦地按同一条标准扫完所有行。

## 计算与核对

汇总类的问题可以直接问，但要让它把中间数一起给出来：总笔数、总额、被排除的行数。只有最终数字，错了你也不知道错在哪。

需要交叉验证时，自己动手算一小块。比如挑一个门店，把它的几行金额加一遍，和它给出的分项对得上，再信总计。去重、空值、分组边界是最容易出错的三处，核对时优先看。

如果结果里出现「人均」「达成率」这类比值，追问一句分母是什么。分母取错，比值全错，而且看起来很正常。

## 公式留在表里

数据还要继续在表格软件里用，就别让它只给结果，让它给公式。先把列布局写清楚：

```text
列布局：A 门店，B 一月，C 二月，D 三月，E 季度目标。
请给出：
F 合计 =SUM(B2:D2)
G 达成率 =F2/E2（百分比，保留一位小数）
H 差额 =F2-E2
I 评级 =IF(G2>=1.2,"优秀",IF(G2>=1,"达标",IF(G2>=0.8,"待改进","未达标")))
并解释每个公式引用了哪几列。
```

粘进表格前，先在一行上试，确认引用没有错位。公式的好处是可复查：点开单元格就能看到它怎么算的，比一段对话记录可靠。

## 导回与隐私

- 小表直接复制粘贴，整表导出用 CSV。
- 中文打开乱码，多半是编码问题，换成带 BOM 的 UTF-8 再试。
- 姓名换成代号，电话遮住中间几位，身份证号不要整列贴出去。
- 行数很多时不要整表粘进对话，分批处理或让脚本在本地跑，思路见[上下文窗口](/concepts/context-window/)。
- 输出文件里留一段口径说明：数据范围、含税与否、排除了哪些行。

把表格整理成周报是同一套方法的延伸，可以接着看[把一份 CSV 变成周报](/learn/weekly-report/)。

表格处理顺了，下一步是从数字里读出结论：[数据统计分析](/learn/data-statistics-analysis/)。
