有一种说法流传了很久——“真正厉害的财务模型,都是用VBA或者Python写的。”你信了,然后打开了一个VBA教程,看了三章,发现就像在读另一门语言。
你把Python装好,开始学pandas,发现学到能把一个Excel表读成DataFrame的时候,已经过去了两周。而老板要的模型,明天就要。
这是财务人最深的幻觉:技术难度等于建模能力。
投行和PE里那些年薪百万的建模师,桌面常年只开一个软件:Excel。他们用的不是代码。他们是在把商业逻辑,用函数翻译成数学关系。翻译得越直接,模型越漂亮。
下面这10个函数,就是这套翻译系统的词汇。每一个都希望你打开Excel跟着写一遍。
查找引用:
告别VLOOKUP的列序地狱
打开一个多表对账的工作簿,想要从一个表格里把数据抓到另一个表格里,最先想到谁?八成是VLOOKUP。
写起来快:=VLOOKUP(找谁, 在哪找, 返回第几列, 0)。但这里藏着一个在设计上反人性的坑:第三个参数,列索引。
你必须数出返回列在查找区域里的列号。一旦源数据的列序变了、有人插了一列、或者你要的值在查找列的左边——VLOOKUP直接抛出#N/A。
财务模型不是写完就扔的一次性计算。它要跑几十个情景,每个情景下成千上万的公式被重新计算。你不能指望自己记得住每一个VLOOKUP的列号,也不能让模型因为别人动了一列表格就瘫痪。
机构里的标配是两个方案:
方案一:INDEX+MATCH,把行列拆开。
两步。MATCH定位目标的位置,INDEX取那个位置的值。查找列和返回列完全独立。
更重要的是,遇到交叉表——行是产品,列是月份,要找特定产品在特定月份的销售——INDEX+MATCH的双重匹配可以做到。
方案二:XLOOKUP,微软对VLOOKUP的正式修正。
=XLOOKUP(找谁, 在哪个范围找, 返回哪个范围, 找不到怎么办)。不用数第几列,查找列在哪边都行,找不到直接返回你指定的内容。
一个训练建议:把你现在手头所有还在用VLOOKUP的模型,做一轮替换。很多过去需要嵌套三层IFERROR来兜底的公式,现在只需要一个干净的XLOOKUP。
三种查找函数对比一览:

条件判断:
财务数据天生是多维的
模型搭起来之后,第一关不是预测,是整理。你会面对一堆散乱的明细账。要把它们汇总成一套可读的报表,你需要的不是手动筛选,是让函数替你分类和加总。
这里有一个心法:直接在脑子里删掉SUMIF,从SUMIFS开始。
SUMIF只能处理一个条件。财务数据天生多维——科目、期间、部门、项目、产品线。你第一次写SUMIF按科目汇总,觉得挺好用。第二周,老板说分月看一下,公式要重写。第三周,分月还要分部门,SUMIF直接报废。
SUMIFS从第一天起就支持多条件,语序也符合思维习惯:
=SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, ...)
做月度利润表,按科目编码和会计期间汇总发生额,一个公式就够:
=SUMIFS(发生额列, 科目编码列, "5101", 日期列, ">="&F2, 日期列, "<="&F3)
SUMIF与SUMIFS对比:

条件判断的另一个战场,是逻辑分支。用IFS,别用IF。
当你要根据净利润增长率判断公司属于哪个业绩档位时,IFS可以把三层嵌套的IF拍成一条直线:
=IFS(增长率<5%, "C", 增长率<15%, "B", 增长率<25%, "A", TRUE, "S")
从左到右顺序执行,检查到哪个条件为真就停。逻辑是透明摊开的,而不是塞在层层括号里让别人猜。
业绩档位判断表(IFS示例结果):

时间价值:
NPV和IRR,留给教科书
教材在教NPV和IRR。考试在考NPV和IRR。你打开Excel,看到这两个函数明晃晃地躺在列表里。然后你把它们套进你的投资模型,算出了一个看起来很漂亮的数字。但你隐隐觉得哪里不对。
这个不对,来自一个99%的教材不会主动警告你的事实:NPV和IRR,假设每一笔现金流都发生在严格等距的期末。 每年一笔,每笔间隔一模一样。
翻翻你手里的真实项目。一个私募股权投资,资金可能是第一年分三笔打进去的。退出可能是第三年年底一部分,第四年年中再一部分,第五年年初最后一笔。
日期之间隔了100天,又隔了50天,再隔了400天。完全不规则。
NPV不关心这些。它把这些日期各异、间隔不均的现金流,全按等距的年度期末来处理。它给你算出了一个数。一个在数学上完美、在现实中完全错误的数。
NPV和IRR的唯一正确使用场景,是教科书后面的习题。
在实际工作中,必须是XNPV和XIRR:=XNPV(折现率,现金流区域,日期区域),=XIRR(现金流区域,日期区域)。
这两个函数的本质区别:它们把精确的日期写进了计算过程。XIRR基于一年365天,计算每一笔现金流实际占用资金的具体天数。不是假想的期末,是真实的交割日、付款日、结算日。

模拟分析:
一张表,替代一下午的手工劳动
模型搭完,真正的拷问才开始。
“如果折现率不再是8%,上调到9%会怎样?如果上调一个点,再叠加收入增速从10%降到6%呢?”
你可以手动改数字,看结果,记下来,再改下一个。一个下午,头晕眼花。用数据表。它藏在"数据 → 模拟分析 → 模拟运算表"里。很多人不知道它,但它是整个Excel里回报率最高的功能之一。
操作逻辑:把假设输入列好(比如折现率从5%到15%,步长0.5%),用公式链接到你的模型输出,打开数据表,把假设输入指到你的折现率单元格。
Excel会在毫秒级的时间内,把每一个假设输入值喂进你的模型,计算一遍输出,然后把结果整齐地列在对应行里。
你得到的不是一次计算的结果。你得到了一张企业在不同折现率假设下的价值图谱。
这个功能唯一的前提条件:你的模型本身必须稳健。 前面九个函数,就是在为这个稳健性提供支撑。
实操:把它们拼起来,
翻译一个完整的投资逻辑
下面用这10个函数,搭一个微型投资回报计算器。
模型目的:评估一个项目。能根据输入的项目名称自动抓取对应的假设数据,用真实的现金流日期计算IRR和净现值,然后做敏感性分析。
第一步:用XLOOKUP搭建动态输入端口。
把不同项目的假设数据——投资额、各期现金流和对应日期——放在一个独立的“项目库”工作表里。
在当前模型表,B1单元格就是你的选择器。输入“项目A”,后面所有单元格自动响应。
在【投资额】单元格,写:=XLOOKUP(B1, 项目库!A:A, 项目库!B:B)。
现金流、日期,全部照此推进。模型变成了一个通用分析机,给它一个项目名称,它自动完成全部计算。
这一步解决的核心矛盾:手工切换参数太慢,容易出错,而且算完一个项目之后找不到原始假设。
第二步:用SUMIFS构建可筛选的现金流表。
如果你的现金流里有不同性质的项目——比如运营现金流和融资现金流混在一起——你需要在计算前把它们分开。SUMIFS就是这道筛子。
在现金流计算区,用SUMIFS把特定类别的现金流挑出来,再汇总到对应的日期行。
这一步解决的核心矛盾:
你计算IRR的现金流序列,必须是“这一个项目、这一个时间段内”的净额。SUMIFS确保你扔进XNPV和XIRR的是干净的正确数字,没有掺杂别的项目的现金流。
第三步:用XNPV和XIRR计算核心指标。
净现值:=XNPV(B2, 现金流区域, 日期区域)
内部收益率:=XIRR(现金流区域, 日期区域)
B2是你的折现率假设。数值更新的一刻,精确到日的净现值和内部收益率就完成了。
这一步解决的核心矛盾:时间的精确刻度被纳入计算,不会因为现金流实际发生的日期和理论假设不符而产生系统性偏差。
第四步:用IFS增加投资决策判断。
=IFS(XIRR结果>最低回报率, "投", TRUE, "不投")
如果你要更精细的判断逻辑,比如IRR超过20%是“强烈推荐”,15%-20%是“建议”,低于15%是“放弃”,IFS把判断逻辑平摊开,每一个条件条和对应结果都清清楚楚。
这一步解决的核心矛盾:复杂的嵌套判断被解构为线性可读的逻辑,其他人拿到你的模型,能一眼看懂决策规则。
第五步:用数据表做敏感性分析。
拉一组折现率,比如0%到20%,步长1%。选中这组数和它右边的空白列,调出数据表。把列输入单元格指到折现率假设(B2)。
确定。一张折现率变动对净现值影响的完整映射表,直接铺开在你面前。
这一步解决的核心矛盾:你对一个假设变量的不确定性,不必靠直觉猜测,而是被转化为一组具体的数字映射。你能看到拐点在哪里。
搭建步骤总览:

具体公式参考:

你从头到尾用的就是这10个函数。没有一行代码,没有一个插件。
在搭这个简易工具的过程里,你完成的不只是一次计算练习。
你完成了一次翻译:把一个投资决策的商业逻辑——谁投谁、钱怎么进出、时间怎么走、怎样算通过——翻译成了一行行逻辑干净、能跑通、谁都能读懂的Excel公式。
把"投资额"换成"收入",把"项目库"换成"不同的公司",把"最低回报率"换成"资本成本"。这套译法,就是DCF估值的起点。
Excel建模真正拼的,从来不是你背了多少函数。是你拿到一段商业逻辑的时候,知道用哪几个函数,能把它翻译得最短、最直接、没有任何损耗。


最后欢迎大家加入我们的💎河狸金融升阶♥-财务建模技巧实操营,你有任何关于估值建模的问题都可以在群内交流,另外群内也会定期分享实操干货、工具资料包、福利课程、大咖直播、FMI考试等相关信息!
现在加入还可领取
【财务建模一本通】
+
【AI财务建模学习路线图】
+
【100+份财务建模工具资料包】
长按识别二维码
立即进群


↓点击下方名片 关注河狸AI分析建模