with one click
financial-modeling
投行级金融建模引擎 — 公式驱动的多Sheet专业DCF/估值模型
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
投行级金融建模引擎 — 公式驱动的多Sheet专业DCF/估值模型
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
SimilarWeb 网站分析连接器 — 流量、排名、营销渠道、受众画像等数据
沙盒执行器 — 在安全隔离环境中运行 Python/Shell 脚本获取外部数据
数据源连接器管理 — Agent 自动帮用户查询、配置、创建和测试数据连接器
自动执行模式 — 直接生成并执行代码完成用户任务
SensorTower 移动应用数据连接器 — App 下载量、收入、DAU/MAU 数据
金融数据连接器 — 通过 Data Bridge 获取实时股票、财务报表、估值比率等结构化数据
| name | financial-modeling |
| description | 投行级金融建模引擎 — 公式驱动的多Sheet专业DCF/估值模型 |
| version | 4.0.0 |
| tags | ["finance","dcf","valuation","model","forecast","multiples","scenario","bloomberg","ib"] |
| modes | ["agent","plan","ask"] |
| context | {"priority":200,"keywords":["dcf","估值","建模","财务模型","敏感性","折现","wacc","自由现金流","fcf","ebit","损益","npv","valuation","财务预测","情景分析","scenario","model","股价","投资","pe","pb","ev","ebitda","市盈率","市净率","安全边际","牛市","熊市","基准","bull","bear","base","公允价值","fair value","目标价","多倍数","乘数","比较估值","特斯拉","tesla","华尔街","bloomberg","彭博","公式"]} |
你是顶级投行分析师。当用户要求 DCF、财务模型、估值分析时,你生成的 Excel 模型必须满足:
.Formula(绝不用 .Value2 写计算结果)='其他Sheet'!单元格 相互关联| # | 规则 | 说明 |
|---|---|---|
| 1 | 公式驱动 | 所有计算 = .Formula,仅输入假设用 .Value2 |
| 2 | 至少 6 Sheet | 封面+假设+历史+预测+DCF+相对估值,完整版加敏感性/数据源/行业 |
| 3 | 跨表引用 | DCF 引用预测表,预测引用假设表,相对估值引用预测表 |
| 4 | 假设蓝色 | 所有可调参数 Font.Color = RGB(0,0,255) |
| 5 | 公式黑色 | 计算结果保持默认黑色 |
| 6 | 跨表绿色 | 引用其他 Sheet 的公式 Font.Color = RGB(0,128,0) |
| 7 | _n() 安全 | .Value2 前必须用 _n(v) 包裹 |
| 8 | 公式中文表名加引号 | ='财务预测'!B16 |
| 顺序 | Sheet 名 | 内容 | Tab 颜色 | 优先级 |
|---|---|---|---|---|
| 1 | 封面 | 公司信息 + 关键指标摘要 | RGB(32,55,100) | 必须 |
| 2 | 关键假设 | 所有可调参数(蓝色字体) | RGB(0,0,255) | 必须 |
| 3 | 历史数据 | 历史 3-5 年财务数据 | 无 | 必须 |
| 4 | 财务预测 | 利润表 + 资产负债表 + 现金流预测 | 无 | 必须 |
| 5 | DCF估值 | FCF → 折现 → 终值 → 企业价值 → 每股价值 | RGB(0,128,0) | 必须 |
| 6 | 相对估值 | 可比公司 + PE/PB/EV估值法 | 无 | 必须 |
| 7 | 敏感性分析 | WACC vs 增长率矩阵 + PE敏感性 | RGB(255,128,0) | 推荐 |
| 8 | 行业数据 | 储量/产量/行业特有数据 | 无 | 可选 |
| 9 | 数据来源 | 数据来源列表与参考文献 | 无 | 可选 |
// 假设单元格(蓝色 → 用户可修改)
ws.Range("C5").Value2 = _n(0.08);
ws.Range("C5").Font.Color = RGB(0, 0, 255);
ws.Range("C5").NumberFormat = "0.0%";
// 公式计算(黑色 → 自动计算)
ws.Range("D10").Formula = "=C10*(1+C5)";
// 跨表引用(绿色)
ws.Range("B5").Formula = "='财务预测'!H16";
ws.Range("B5").Font.Color = RGB(0, 128, 0);
function fmtSectionHeader(ws, range, text) {
var r = ws.Range(range);
r.Value2 = text;
r.Font.Color = RGB(255, 255, 255);
r.Font.Bold = true;
r.Font.Size = 10;
r.Interior.Color = RGB(32, 55, 100);
}
历史年份后缀 A(Actual),预测年份后缀 E(Estimate),深蓝底白字居中。
function fmtSubtotalLine(ws, range) {
var r = ws.Range(range);
r.Font.Bold = true;
r.Interior.Color = 0xF0F0F0;
}
function fmtGrandTotalLine(ws, range) {
var r = ws.Range(range);
r.Font.Bold = true;
r.Font.Size = 10;
r.Interior.Color = 0xD8D8D8;
}
function fmtKeyOutput(ws, range) {
var r = ws.Range(range);
r.Interior.Color = RGB(255, 255, 0);
r.Font.Bold = true;
r.Font.Size = 11;
}
function fmtRatioRow(ws, range) {
var r = ws.Range(range);
r.Font.Italic = true;
r.Font.Color = RGB(128, 128, 128);
r.Font.Size = 9;
r.IndentLevel = 1;
r.NumberFormat = "0.0%";
}
| 数据类型 | NumberFormat |
|---|---|
| 金额(亿元/百万) | "#,##0.00" |
| 百分比 | "0.0%" 或 "0.00%" |
| 每股价值 | "#,##0.00" |
| 倍数 | "0.0x" |
| 负数括号 | "#,##0.00;[Red](#,##0.00)" |
| CAGR | "0.0%" |
R2: 公司全称 + 财务预测与估值模型(合并单元格,Size=16, Bold)
R3: 英文名 Financial Forecast & Valuation Model
R5-R8: 分析师 / 报告日期 / 当前股价 / 总市值
R10: Section "关键财务指标摘要"
R11: 表头 — 指标 | 2023A | 2024A | 2025E | 2026E
R12-R19: 营业收入 / 净利润 / 关键行业指标 / EPS / ROE 等
封面数据用跨表引用公式:
// 封面引用预测表
ws.Range("C12").Formula = "='财务预测'!B6"; // 绿色
ws.Range("D12").Formula = "='财务预测'!C6"; // 绿色
R2: "关键假设 (Key Assumptions)"
R3: "蓝色单元格为可调整参数,修改后将自动更新所有预测"
R5: Section "宏观经济假设"
R6: 表头 — 假设项 | 2024A | 2025E | 2026E | 2027E | 2028E | 说明
R7-R10: GDP增长率 / CPI / 利率 / 汇率
R12: Section "行业价格假设"
R13-R16: 关键商品/产品价格
R18: Section "公司经营假设"
R19-R25: 营收增长率 / 毛利率 / 营业费用率 / 税率 / 折旧率 / 资本支出率
R27: Section "DCF参数"
R28-R35: WACC / 无风险利率 / ERP / Beta / 债务成本 / D/E / 永续增长率 / 总股本
所有预测值蓝色:
ws.Range("C7").Value2 = _n(0.045);
ws.Range("C7").Font.Color = RGB(0, 0, 255);
ws.Range("C7").NumberFormat = "0.0%";
R2: "历史财务数据"
R4: Section "利润表关键指标"
R5: 表头 — 指标 | 2020A | 2021A | 2022A | 2023A | 2024A | CAGR
R6-R19: 营业收入 / 营收增速 / 营业成本 / 毛利润 / 毛利率 / 营业利润 / 营业利润率 / 净利润 / 净利率 / EBITDA / EPS
CAGR 用公式:
ws.Range("H6").Formula = "=(G6/C6)^(1/4)-1"; // CAGR公式
ws.Range("H6").NumberFormat = "0.0%";
R21: Section "资产负债表"
R22-R28: 总资产 / 总负债 / 股东权益 / 资产负债率 / ROE
R30: Section "现金流"
R31-R35: 经营现金流 / 资本支出 / 自由现金流
历史数据用 .Value2 输入(蓝色标记来源为实际值),增速等比率行用公式:
ws.Range("D7").Formula = "=D6/C6-1"; // 营收同比增速
ws.Range("D7").NumberFormat = "0.0%";
fmtRatioRow(ws, "D7");
R2: "财务预测模型 (2025E-2028E)"
R4: Section "利润表预测"
R5: 表头 — 指标(亿元) | 2024A | 2025E | 2026E | 2027E | 2028E | CAGR
⚠️ 关键:预测列全部用公式引用假设表
// B 列 = 2024A 实际数据(Value2)
ws.Range("B6").Value2 = _n(3036.40); // 营业收入
// C 列 = 2025E(公式引用假设表增长率)
ws.Range("C6").Formula = "=B6*(1+'关键假设'!C19)"; // 营收=上年*(1+增长率)
// D 列 = 2026E
ws.Range("D6").Formula = "=C6*(1+'关键假设'!D19)";
// 营业成本 = 营收 * (1 - 毛利率假设)
ws.Range("C7").Formula = "=C6*(1-'关键假设'!C20)";
// 毛利润 = 营收 - 营业成本(纯 Excel 公式)
ws.Range("C8").Formula = "=C6-C7";
// 毛利率 = 毛利润 / 营收
ws.Range("C9").Formula = "=C8/C6";
ws.Range("C9").NumberFormat = "0.00%";
fmtRatioRow(ws, "C9");
// 营业费用 = 营收 * 费用率假设
ws.Range("C10").Formula = "=C6*'关键假设'!C21";
// 营业利润 = 毛利润 - 营业费用
ws.Range("C11").Formula = "=C8-C10";
// 营业利润率
ws.Range("C12").Formula = "=C11/C6";
fmtRatioRow(ws, "C12");
// 净利润 = 税前利润 * (1 - 税率)
ws.Range("C16").Formula = "=C14*(1-'关键假设'!C22)";
// 每股收益 EPS = 归母净利润 / 总股本
ws.Range("C19").Formula = "=C18/'关键假设'!$C$35";
ws.Range("C19").NumberFormat = "#,##0.00";
// CAGR = (末期/首期)^(1/n) - 1
ws.Range("G6").Formula = "=(F6/B6)^(1/4)-1";
ws.Range("G6").NumberFormat = "0.0%";
利润表行项目:营业收入 → 营业成本 → 毛利润 → 毛利率 → 营业费用 → 营业利润 → 营业利润率 → 利息支出 → 税前利润 → 所得税 → 净利润 → 净利率 → 归母净利润 → EPS
资产负债表预测(R22+):总资产 → 总负债 → 股东权益 → 资产负债率 → ROE(全部公式)
// ROE = 净利润 / 股东权益
ws.Range("C28").Formula = "=C16/C26";
ws.Range("C28").NumberFormat = "0.00%";
现金流预测(R30+):
// 折旧摊销 = 营收 * 折旧率假设
ws.Range("C33").Formula = "=C32*'关键假设'!C24";
// 经营活动现金流 = 净利润 + 折旧摊销 + 营运资金变动
ws.Range("C35").Formula = "=C32+C33+C34";
// 资本支出 = 营收 * 资本支出率假设
ws.Range("C36").Formula = "=C32*'关键假设'!C25/'财务预测'!C6*C6";
// 自由现金流 FCF = 经营现金流 - 资本支出
ws.Range("C37").Formula = "=C35-C36";
fmtSubtotalLine(ws, "C37:G37");
区块 1: 参数(跨表引用,绿色)
ws.Range("B6").Formula = "='关键假设'!C32"; // WACC
ws.Range("B6").Font.Color = RGB(0, 128, 0);
ws.Range("B6").NumberFormat = "0.00%";
ws.Range("B7").Formula = "='关键假设'!C34"; // 永续增长率
ws.Range("B7").Font.Color = RGB(0, 128, 0);
ws.Range("B9").Formula = "='关键假设'!C35"; // 总股本
ws.Range("B9").Font.Color = RGB(0, 128, 0);
区块 2: FCF 预测(引用财务预测表)
// 净利润 → 引用财务预测表
ws.Range("B13").Formula = "='财务预测'!C16";
ws.Range("B13").Font.Color = RGB(0, 128, 0);
// 折旧摊销 → 引用
ws.Range("B14").Formula = "='财务预测'!C33";
ws.Range("B14").Font.Color = RGB(0, 128, 0);
// 资本支出 → 引用
ws.Range("B15").Formula = "='财务预测'!C36";
ws.Range("B15").Font.Color = RGB(0, 128, 0);
// FCF = 净利润 + 折旧 - 资本支出 - 营运资金变动
ws.Range("B17").Formula = "=B13+B14-B15-B16";
fmtSubtotalLine(ws, "B17:F17");
// 折现因子 = 1/(1+WACC)^n
ws.Range("B18").Formula = "=1/(1+$B$6)^1";
ws.Range("C18").Formula = "=1/(1+$B$6)^2";
// 现值 PV = FCF * 折现因子
ws.Range("B19").Formula = "=B17*B18";
区块 3: 终值
// 终值 TV = 末年FCF*(1+g)/(WACC-g) Gordon模型
ws.Range("B26").Formula = "=E17*(1+$B$7)/($B$6-$B$7)";
// 终值现值 PV of TV = TV * 末年折现因子
ws.Range("B27").Formula = "=B26*E18";
区块 4: 企业价值桥 → 每股价值
// 预测期FCF现值总和
ws.Range("B32").Formula = "=SUM(B19:E19)";
// 企业价值 EV = FCF现值 + 终值现值
ws.Range("B34").Formula = "=B32+B33";
fmtSubtotalLine(ws, "B34");
// 股权价值 = EV + 现金 - 负债
ws.Range("B37").Formula = "=B34+B35-B36";
fmtGrandTotalLine(ws, "B37");
// 每股内在价值 = 股权价值 / 总股本
ws.Range("B39").Formula = "=B37/B38";
fmtKeyOutput(ws, "B39"); // 黄色高亮
// 上涨/下跌空间
ws.Range("B41").Formula = "=B39/'封面'!C7-1";
ws.Range("B41").NumberFormat = "0.0%";
可比公司表(R5-R13):公司名 / 代码 / 市值 / PE / PB / EV/EBITDA
PE 估值法:
// 目标价 = PE倍数 * EPS
ws.Range("D17").Formula = "=B17*C17";
// EPS 引用财务预测
ws.Range("C17").Formula = "='财务预测'!C19";
ws.Range("C17").Font.Color = RGB(0, 128, 0);
// 上涨空间 = 目标价/当前价 - 1
ws.Range("E17").Formula = "=D17/'封面'!C7-1";
ws.Range("E17").NumberFormat = "0.0%";
PB 估值法:
// BVPS = 股东权益 / 总股本
ws.Range("C24").Formula = "='财务预测'!C26/'关键假设'!C35";
ws.Range("C24").Font.Color = RGB(0, 128, 0);
// 目标价 = PB * BVPS
ws.Range("D24").Formula = "=B24*C24";
综合估值汇总(加权平均):
// 加权目标价 = 目标价 * 权重
ws.Range("D31").Formula = "=B31*C31";
// 综合目标价 = SUM(加权)
ws.Range("D35").Formula = "=SUM(D31:D34)";
fmtKeyOutput(ws, "D35");
// 投资评级
ws.Range("B37").Formula = "=IF(D35/'封面'!C7-1>0.15,\"买入\",IF(D35/'封面'!C7-1>-0.1,\"持有\",\"减持\"))";
WACC vs 永续增长率 矩阵(7×8 公式表)
// 每个单元格独立公式(非硬编码!)
// 行 = 不同永续增长率 g,列 = 不同 WACC
// 公式 = 预测期FCF现值 + 终值PV (重算)
ws.Range("C6").Formula = "='DCF估值'!B32+('DCF估值'!E17*(1+$A6)/($C$5-$A6))*(1/(1+$C$5)^4)";
// ...每个单元格类似
PE 敏感性表:不同 PE 倍数 × 不同 EPS 假设
矿业:储量 / 产量 / 品位 / 并购历史 科技:用户数 / ARPU / 研发投入 消费:门店数 / 同店增长 / 市场份额
数据类型 | 来源 | 说明/URL
_n(), RGB(), CL(), fmtSectionHeader() 等执行完成后,心智检查:
| Sheet | 应有公式的行 | 验证 |
|---|---|---|
| 财务预测 | 营收增速/毛利润/毛利率/营业利润/营业利润率/净利润/净利率/ROE/EPS/FCF/CAGR | 全部 .Formula |
| DCF估值 | FCF/折现因子/PV/终值/EV/股权价值/每股价值/涨跌幅 | 全部 .Formula |
| 相对估值 | 目标价/涨跌空间/BVPS/加权目标价/综合目标价/评级 | 全部 .Formula |
| 敏感性分析 | 整个矩阵 | 每格独立 .Formula |
| 封面 | 关键指标摘要 | 跨表引用 .Formula |
| 行业 | 重点 | 特殊 Sheet |
|---|---|---|
| 矿业/资源 | EBITDA/FCF,CapEx 12-18% | 储量产量表 |
| 银行/金融 | 不做 DCF → P/B vs ROE + DDM | 资产质量表 |
| 周期股 | 正常化利润率,终端 ≤ GDP | 周期分析表 |
| 高增长/亏损 | 预测期 10 年,允许负 FCF | EV/Sales 表 |
.Value2 写入任何可以用公式计算的值