电子表格审计(Audit XLS)
什么是模型审计?
在金融行业,Excel 模型是决策的基础 —— DCF 模型决定了公司的估值,LBO 模型决定了 PE 基金的出价,三表模型预测了公司的未来。如果模型中存在公式错误、硬编码覆盖或逻辑问题,整个分析的结论都不可靠。 模型审计就是对 Excel 工作簿进行系统性的检查,找出公式层面的错误和财务模型特有的完整性问题。这就像代码审查(Code Review)一样 —— 不是检查模型的结论是否正确,而是检查模型的”代码”(公式和链接)是否正确。为什么重要
- 投行交付前 —— MD 签字前的最后一道质量关卡
- IC(投委会)前 —— 投资决策依赖模型的准确性
- 交易交割前 —— 法律和财务文件中的数字必须与模型一致
- 接手他人模型时 —— 在使用前确认模型的可靠性
核心概念
| 中文术语 | 英文术语 | 说明 |
|---|---|---|
| 审计范围 | Audit Scope | 检查的深度 —— 选区级、工作表级或全模型级 |
| 硬编码 | Hardcode | 直接输入的数字,而非引用其他单元格的公式 |
| 循环引用 | Circular Reference | A 引用 B,B 引用 C,C 又引用 A 的循环依赖 |
| 资产负债表平衡 | BS Balance | Assets = Liabilities + Equity 必须成立 |
| 现金勾稽 | Cash Tie-Out | 现金流量表期末现金 = 资产负债表现金 |
| 公式覆盖 | Pasted-Over Formula | 看起来像公式但实际是硬编码值的单元格 |
| 迭代计算 | Iterative Calculation | Excel 通过多次循环计算来解决循环引用 |
工作流程
步骤 1:确定审计范围
三个范围级别:- selection(选区)—— 只检查当前选中的区域
- sheet(工作表)—— 检查当前活动工作表
- model(全模型)—— 最深度审计,包括财务模型完整性检查
步骤 2:公式级检查(所有范围)
| 检查项 | 查找内容 |
|---|---|
| 公式错误 | #REF!、#VALUE!、#N/A、#DIV/0!、#NAME? |
| 公式中的硬编码 | =A1*1.05 —— 其中 1.05 应该是单元格引用 |
| 不一致的公式 | 某行的公式模式与相邻行不同 |
| 范围偏移 | SUM/AVERAGE 少包含了第一行或最后一行 |
| 公式覆盖 | 看起来有公式但实际是粘贴的值 |
| 循环引用 | 有意的还是无意的 |
| 断裂的跨表链接 | 引用了已移动或删除的单元格 |
| 单位不匹配 | 千元与百万元混用,百分比存为整数 |
步骤 3:模型完整性检查(model 范围)
资产负债表:- Total Assets = Total Liabilities + Equity(每个期间)
- Retained Earnings 正确滚动
- CF Ending Cash = BS Cash(每个期间)
- CFO + CFI + CFF = 现金变动
- D&A 和 CapEx 与来源明细表一致
- 营收构建与明细一致
- 税金计算合理(考虑递延税调整)
DCF 常见问题
DCF 常见问题
- 折现率应用到错误的期间
- 终值未折现回现值
- WACC 使用账面价值而非市场价值
- FCF 包含利息费用
- 终值占 EV 比例过大
LBO 常见问题
LBO 常见问题
- 债务偿还与 Cash Sweep 不匹配
- PIK 利息未计入本金
- 退出倍数应用到错误的 EBITDA
- 交易费用未从 Day 1 股权扣除
三表模型常见问题
三表模型常见问题
- 营运资本变动符号错误
- 折旧与 PP&E 明细表不匹配
- 股利超过净利润
步骤 4:生成报告
| # | 工作表 | 单元格 | 严重程度 | 类别 | 问题 | 建议修复 |
|---|---|---|---|---|---|---|
| 1 | IS | D15 | Critical | 公式 | 硬编码覆盖 | 替换为公式 |
| 2 | BS | H30 | Critical | 平衡 | Assets 不等于 L+E | 追溯 RE 滚动 |
如何添加到本地环境
最佳实践
- BS 平衡是第一优先级 —— 如果资产负债表不平衡,下游所有结果都不可信
- 硬编码覆盖是头号隐形杀手 —— 需要主动搜索
- 符号惯例错误极为常见 —— 现金流出应该是正还是负?不同模板的惯例不同
- 只报告不修改 —— 除非用户明确要求修复