> ## Documentation Index
> Fetch the complete documentation index at: https://financecontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 数据清理技能

> Finance 101：如何清理杂乱的电子表格数据 —— 空白字符、大小写、数字格式、日期和重复项

# 数据清理（Clean Data XLS）

## 什么是数据清理？

在金融分析中，"干净的数据"是一切分析的前提。现实中，从各种来源获取的原始数据往往存在各种质量问题：多余的空格、不一致的大小写（USA vs usa vs Usa）、数字被存为文本（Excel 左上角的绿色三角形）、日期格式混乱（2024/3/8 vs March 8, 2024 vs 2024-03-08）、重复行等等。

如果不先清理这些问题就直接做分析，结果可能完全不可靠 —— 比如 VLOOKUP 因为前导空格而匹配失败，或者 SUM 因为部分数字被存为文本而漏算。

这个技能检测数据中的各种质量问题，提出修复建议，并在用户确认后执行清理 —— 尽可能使用公式（保持透明和可审计），而非直接覆盖原始数据。

## 为什么重要

* **Comps 分析数据整合** —— 从多个来源合并的公司数据需要统一格式
* **M\&A 数据室清理** —— 尽职调查中获取的原始数据往往格式混乱
* **财务模型输入** —— 垃圾数据进去就是垃圾结果出来
* **报告生成** —— 输出格式的一致性影响专业形象

## 核心概念

| 中文术语   | 英文术语                   | 说明                   |
| ------ | ---------------------- | -------------------- |
| 空白字符   | Whitespace             | 前导/尾随空格、双空格          |
| 大小写不一致 | Inconsistent Casing    | 同一列中出现 USA、usa、Usa   |
| 文本型数字  | Numbers Stored as Text | 数字被存为文本格式，无法参与计算     |
| 日期格式混乱 | Mixed Date Formats     | 同一列中日期格式不统一          |
| 重复行    | Duplicates             | 完全相同或近似相同的行          |
| 混合类型列  | Mixed-Type Column      | 一列中 98% 是数字但有 3 个文本值 |
| 编码问题   | Encoding Issues        | 乱码字符                 |
| 辅助列    | Helper Column          | 放置清理公式的相邻列，保留原始数据不变  |

## 工作流程

<Steps>
  <Step title="确定范围">
    * 如果指定了范围（如 `A1:F200`），使用该范围
    * 否则使用活动工作表的全部已用区域
    * 分析每列的主要数据类型（文本/数字/日期），识别异常值
  </Step>

  <Step title="检测问题">
    在提出任何修复建议之前，先扫描所有问题类型：

    | 问题    | 查找内容                               |
    | ----- | ---------------------------------- |
    | 空白字符  | 前导/尾随空格、连续双空格                      |
    | 大小写   | 分类列中的不一致（`usa` / `USA` / `Usa`）    |
    | 文本型数字 | 数值被存为文本；数字单元格中的 `$`、`,`、`%`        |
    | 日期    | 同一列中混合格式                           |
    | 重复项   | 完全重复行和近似重复项                        |
    | 空值    | 数据列中的空白单元格                         |
    | 混合类型  | 数字列中混入文本值                          |
    | 公式错误  | `#REF!`、`#N/A`、`#VALUE!`、`#DIV/0!` |
  </Step>

  <Step title="提出修复建议">
    展示汇总表，**修改前必须获得用户确认**：

    | 列    | 问题     | 数量   | 修复方案                            |
    | ---- | ------ | ---- | ------------------------------- |
    | 公司名称 | 前后空格   | 47 行 | 辅助列 `=TRIM(A2)`                 |
    | 营收   | 文本型数字  | 23 行 | `=VALUE(SUBSTITUTE(B2,"$",""))` |
    | 国家   | 大小写不一致 | 15 行 | `=UPPER(C2)`                    |
    | 日期   | 格式混乱   | 31 行 | `=DATEVALUE(D2)`                |
    | 行号   | 完全重复   | 8 行  | 确认后删除                           |
  </Step>

  <Step title="执行修复">
    按类别逐一执行，每个类别完成后与用户确认：

    1. 空白字符 → 展示前后对比 → 确认
    2. 大小写 → 展示前后对比 → 确认
    3. 数字转换 → 展示前后对比 → 确认
    4. 日期标准化 → 展示前后对比 → 确认
    5. 去重 → 展示将删除的行 → 确认
  </Step>
</Steps>

## 核心原则：公式优于覆盖

**尽可能使用公式（在辅助列中），而不是直接覆盖原始数据。** 这保持了数据转换的透明性和可审计性。

| 清理任务    | 公式方法                                |
| ------- | ----------------------------------- |
| 去除空格    | `=TRIM(A2)`                         |
| 转大写     | `=UPPER(B2)`                        |
| 转首字母大写  | `=PROPER(C2)`                       |
| 去除货币符号  | `=VALUE(SUBSTITUTE(D2,"$",""))`     |
| 去除千分位逗号 | `=VALUE(SUBSTITUTE(E2,",",""))`     |
| 解析日期    | `=DATEVALUE(F2)`                    |
| 去除百分号   | `=VALUE(SUBSTITUTE(G2,"%",""))/100` |

**仅在以下情况直接覆盖：**

* 用户明确要求
* 没有合理的公式替代方案（如编码/乱码修复）

## 如何添加到本地环境

```bash theme={null}
# 安装插件
claude plugin install financial-analysis@financial-services-plugins
```

**针对中文数据的定制：**

```markdown theme={null}
## 中文数据清理

### 常见中文数据问题
- 全角/半角字符混用（如全角逗号 "，" vs 半角 ","）
- 中文括号 "（）" vs 英文括号 "()" 混用
- 万元/亿元单位转换
- 中文日期格式（2024年3月8日 vs 2024-03-08）
- 公司名称变体（"腾讯" vs "腾讯控股" vs "Tencent"）
```

## 最佳实践

* **先检测后修复** —— 在修改任何内容之前，先展示完整的问题清单
* **分类别逐步执行** —— 不要一次性修改所有问题
* **绝不在未经确认的情况下删除重复行** —— 错误的去重可能不可逆地损毁数据
* **近似重复需要人工判断** —— "Apple Inc." vs "APPLE INC" 是同一家公司吗？
