财务报表分析技能。当用户上传财务报表 Excel 文件(包含资产负债表、利润表、现金流量表等 Sheet)并请求分析时, 站在资深财务专家视角,自动输出完整的财务分析报告,包含:报表项目增减变动表、 资产结构变动表、利润表结构变动表、财务比率综合分析(盈利/偿债/营运/成长能力指标), 以及专家综合分析总结与建议...
---
name: financial-report-analysis
description: >
财务报表分析技能。当用户上传财务报表 Excel 文件(包含资产负债表、利润表、现金流量表等 Sheet)并请求分析时,
站在资深财务专家视角,自动输出完整的财务分析报告,包含:报表项目增减变动表、
资产结构变动表、利润表结构变动表、财务比率综合分析(盈利/偿债/营运/成长能力指标),
以及专家综合分析总结与建议。
触发词:财务报表分析、分析财报、财务分析、资产负债表分析、利润表分析、现金流分析、
财务指标、盈利能力、偿债能力、营运能力、成长能力、ROE、ROA、毛利率、净利率、
流动比率、资产负债率、财务健康诊断、报表解读、财报分析。
---
# 财务报表分析技能
## 概述
本技能面向企业财务报表(Excel格式)进行全方位专业分析,输出 Markdown 格式的财务分析报告。
报告覆盖五大维度,适用于财务尽调、年度复盘、经营体检等场景。
## 触发条件
用户上传含有财务数据的 Excel 文件,且请求进行以下任意类型的分析:
- 财务报表整体分析 / 财务健康诊断
- 资产、负债、利润、现金流增减变动分析
- 各项财务比率计算(盈利/偿债/营运/成长能力)
- 专家级财务分析总结与改进建议
## 工作流程
### Phase 1:文件接收与预处理
1. 确认用户已上传 Excel 文件(`.xlsx` / `.xls` / `.xlsm`)。
2. 如用户未上传,提示:
> "请上传包含财务数据的 Excel 文件(通常应包含资产负债表、利润表、现金流量表等 Sheet)。"
3. 确认文件路径后,进入分析阶段。
### Phase 2:运行分析脚本
调用 `scripts/analyze_financial_report.py` 执行自动化分析:
```bash
python "scripts/analyze_financial_report.py" "<excel_file_path>"
```
脚本将:
- 自动检测并匹配 Excel 中的资产负债表、利润表、现金流量表 Sheet(支持中英文名称模糊匹配)
- 清洗数据,提取本期/上期两列数值
- 输出 Markdown 格式分析报告到同目录下,文件名:`{原文件名}_财务分析报告.md`
**环境依赖**:脚本会自动检查并安装 `pandas`、`openpyxl`,无需手动安装。
### Phase 3:报告内容说明
生成的报告包含五大部分:
#### 一、报表项目增减变动分析
- 对资产负债表、利润表、现金流量表的每个科目
- 列出:本期金额 | 上期金额 | 变动金额(🔺/🔻标注)| 变动率
#### 二、资产项目结构变动分析
- 以**总资产**为基准(100%)
- 计算各资产项目**本期占比**与**上期占比**
- 输出占比变动(单位:百分点 pp)
#### 三、利润表项目结构变动分析
- 以**营业收入**为基准(100%)
- 计算各利润表科目**本期占比**与**上期占比**
- 输出占比变动
#### 四、财务比率综合分析
| 类别 | 主要指标 |
|------|----------|
| 盈利能力 | 毛利率、净利率、ROA、ROE、营业利润率 |
| 偿债能力 | 流动比率、速动比率、资产负债率、利息保障倍数、产权比率 |
| 营运能力 | 总资产周转率、应收账款周转率(天数)、存货周转率(天数)、流动资产周转率 |
| 成长能力 | 收入增长率、净利润增长率、总资产增长率、净资产增长率、营业利润增长率、经营现金流增长率 |
#### 五、资深财务专家综合分析与建议
- 按盈利能力、偿债能力、成长能力逐项给出数值驱动的评价
- 标注核心优势(✅)与风险提示(⚠️/🔴)
- 提供 5 条改进建议
### Phase 4:结果展示
1. 使用 `open_result_view` 展示生成的 Markdown 报告。
2. 使用 `deliver_attachments` 将报告文件交付给用户。
3. 在回复中用简短语言概括分析亮点与主要发现。
## 注意事项
- **Sheet 自动匹配**:脚本支持中英文名称模糊匹配(资产负债表/Balance Sheet/资产 等)。
若某 Sheet 未能自动匹配,报告中会注明"数据不足",可提示用户检查 Sheet 名称。
- **数据格式要求**:Excel 中第一列为科目名,第二列为本期数据,第三列为上期数据(常见格式)。
若格式不同(如多年横排),脚本会尝试自适应,但效果因文件而异。
- **多年期报表**:若文件包含3年及以上数据,成长能力指标会更有参考意义;
当前脚本主要取前两列(本期/上期),如需多年趋势分析,可在报告中补充说明。
- **货币单位**:脚本不处理单位换算,报告中数值与原始数据单位一致(元/万元/亿元均可)。
- **保密提示**:处理完成后,如用户有数据安全顾虑,建议告知文件仅在本地处理,不上传到外部服务。
## 踩坑经验
- **资产/负债分Sheet格式**:部分企业将资产负债表拆分为"资产"和"负债"两个Sheet(如本技能测试文件"深圳市羊城晚报文化发展有限公司"),脚本已支持自动检测并合并。
- **附注列干扰**:标准报表第2列通常为附注编号(如"附注五"),为非数值列,脚本通过"至少15%行是纯数字"的列识别逻辑自动跳过。
- **Sheet简称匹配**:有些文件用"资产"、"负债"、"利润"、"现流"等简称命名Sheet,SHEET_ALIASES中已覆盖这些别名。
- **clean_df中的join报错**:pandas读取含NaN的行时,row.astype(str)可能报 `expected str instance, float found`,需改为 `row.fillna("").astype(str)` 才能正确join。
- **lambda中float类型报错**:对Series执行apply时,若列中含有float类型值,需在lambda内部调用 `str(v)` 转换后再执行正则匹配。
## 错误处理
| 场景 | 处理方式 |
|------|----------|
| 文件未上传 | 提示上传文件 |
| 文件格式不是Excel | 提示仅支持 .xlsx/.xls/.xlsm |
| Sheet 未匹配到 | 在报告中标注,提示检查Sheet名称 |
| 数据列不足(<3列) | 跳过该分析模块,输出提示 |
| 脚本运行报错 | 告知错误信息,建议检查文件格式 |
don't have the plugin yet? install it then click "run inline in claude" again.