上周帮同事排查一张报价表的VLOOKUP错误,公式在编辑栏里来回看了十几遍,愣是没看出毛病。直到我按下F9键,选中公式中间那段,问题当场现形——查找值和数据源表面长得一模一样,内里一个是文本一个是数字。从那以后我养成了一个习惯:复杂公式从来不靠眼睛硬盯,而是用F9键和公式求值功能让Excel自己交代运算过程。这篇内容写给经常和公式打交道、一遇到#N/A或者结果不对就头大的人,也写给想真正理解Excel运算顺序的进阶学习者。
1. 公式出错为什么越看越迷糊:先理解排查的底层逻辑
1.1 肉眼排查的三个天然盲区
很多人调试公式的方法就是盯着编辑栏反复看,说实话,这几乎是效率最低的方式。不是大家不够细心,而是人的大脑在处理复杂公式时有三个天然盲区。
第一个盲区是工作记忆容量有限。一个常见的 =IFERROR(VLOOKUP(A2,价格表!A:B,2,0)*1.1,0) 看似不长,但它涉及的中间结果至少有6个:A2的值是什么、价格表A列有没有匹配、匹配到第几行、返回的价格是多少、乘以1.1之后是多少、IFERROR有没有触发。人的工作记忆大概能同时稳定追踪4个左右的信息,超过这个数量就开始混淆。
第二个盲区是Excel把中间过程全藏起来了。单元格里只有一个最终结果,查找值是什么、匹配到了哪一行、返回值是多少、税率那一步乘出来是多少,这些运算中间的"管道产物"全部被封装在公式内部。你看到的只是黑箱的输出,黑箱内部发生了什么,肉眼根本看不到。
第三个盲区是运算顺序和阅读顺序不一致。公式从左往右读,但Excel有自己的运算优先级规则:括号、负号、百分比、乘方、乘除、加减、连接符、比较运算符各有先后。你以为的"从左往右",在Excel里可能完全是另一套执行顺序。
这三个盲区叠加在一起,就导致了一个结果:公式越长,盯着看越容易陷入自我怀疑。正确做法是把调试思路转过来——既然人眼读不透,就让Excel把中间步骤交出来。公式求值功能负责逐步播放运算过程,F9键负责定点查看任意片段的计算结果,两者搭配使用,相当于给公式装了一台调试器。
1.2 错误代码是第一条线索
在按任何调试工具之前,先学会读错误代码。很多人看到#N/A就慌了,其实错误代码不是"死讯",而是法医报告,它会明确告诉你该往哪个方向排查。
| 错误代码 | 典型出现场景 | 优先排查方向 |
|---|---|---|
| #N/A | VLOOKUP、LOOKUP、MATCH等查找函数无法匹配结果 | 查找值与查找区域的数据格式、引用区域是否锁定、匹配模式是0还是1 |
| #VALUE! | 参数类型错误、文本参与数值运算、区域运算符号写错 | 数据类型、函数参数定义、引用运算符 |
| #DIV/0! | 除数为0,或者分母引用了空单元格 | 分母单元格的值、数据源是否缺失 |
| #NAME? | 函数名拼错、文本没加引号、引用了不存在的名称 | 函数拼写、文本引号、命名区域是否定义 |
| #REF! | 公式引用的单元格被删除或移动 | 引用区域是否失效、最近是否有删除操作 |
| #NULL! | 交集运算符(空格)写错 | 多区域引用符是否写对 |
拿到#N/A,优先查查找值和查找区域的数据格式是否一致,而不是把整个公式从头到尾重读一遍。拿到#DIV/0!,直接去看分母单元格,别在分子上浪费时间。错误代码的作用就是缩小嫌疑范围,这和刑侦里根据线索圈定嫌疑人是一个逻辑。
1.3 运算优先级:潜藏在括号里的隐藏规则
理解运算优先级是排查公式的基础。Excel的运算符优先级从高到低大致是:
- 区域运算符(冒号)、交集运算符(空格)、联合运算符(逗号)
- 负号
- 百分比
- 乘方
- 乘除
- 加减
- 连接运算符(&)
- 比较运算符(=、<、>、<=、>=、<>)
举两个反直觉的例子。第一个是负号和乘方:=-A1^2,Excel先算A1^2,再取负,结果不是(-A1)^2。如果本意是括号里的负号,必须写成=(-A1)^2。第二个是连接符和比较运算符:="A"&1=2,因为连接符优先级高于比较,实际计算过程是"A1"=2,返回FALSE,而不是先算1=2再连接字符串。
运算顺序的坑极其隐蔽,而且不会显示在公式表面上。要揭开这层皮,就得靠工具去看每一步的实际执行结果。这也是为什么我一直强调,调试公式不是在"看",而是在"让公式自己交代"。
2. 公式求值:让Excel一步步交出运算底稿
2.1 功能藏在哪里,打开后能看到什么
公式求值功能在"公式"选项卡下,靠右侧有一个"公式审核"组,里面有个"公式求值"按钮。选中目标单元格,点一下这个按钮,会弹出一个对话框,里面显示当前单元格里的完整公式。
关键是这个对话框的工作方式:公式中当前待计算的子表达式会带下划线,每点击一次"求值"按钮,下划线部分就被替换成计算结果,然后继续标出下一个待计算的子表达式。这个过程完全遵循Excel实际的运算顺序,而不是简单地从左往右推进。
举个例子,单元格公式是 =(A1+B1)*C1,第一次点"求值",对话框显示 =(A1+B1)C1,下划线在A1+B1上;再点一次,变成 =6C1;继续点,变成 =42。每一步都清清楚楚。
这个功能的本质是让Excel把内部的计算过程"录播"给你看。它不改变公式本身,只是按照运算顺序逐步揭露中间值。对嵌套深、逻辑绕的公式来说,这是最直观的教学工具,也是排查运行时错误的好帮手。
2.2 求值、步入、步出:一套完整的单步调试逻辑
公式求值对话框里不止一个按钮。除了"求值"之外,还有"步入"和"步出"两个按钮,它们构成了类似代码调试器的操作逻辑。
"求值"按钮负责计算当前下划线标出的子表达式。如果下划线部分只是一个普通计算,点"求值"就直接得到结果。
"步入"按钮是针对嵌套函数的。当下划线标出的是一个函数(比如VLOOKUP)时,你可以点"步入",进入这个函数内部,亲眼看看它是如何解析每个参数的。这相当于下到地下室,查看函数内部的具体执行现场。
"步出"按钮则用于从函数内部返回到外层公式,继续看接下来的步骤。
用楼层来类比:普通资料的"求值"是站在当前楼层看各房间的结果;"步入"是下楼梯去地下室看真正的执行机制;"步出"是处理完地下室的事情,再上楼继续看。
实际使用中,我的习惯是:先用"求值"一步一步走,走到某一步发现结果和预期不符,就重要回去再看这一层;如果怀疑是某个函数内部的参数问题,就点"步入"进去查;查完用"步出"返回,继续往后走。这套交互非常像程序员用调试器单步执行代码,只不过调试对象是Excel公式。
2.3 这个工具擅长什么,不擅长什么
公式求值功能有一个天然优势:它完整呈现Excel的真实运算顺序,而且不修改公式,纯观察,适合教学演示和疑难公式的专项分析。
但它也有明显短板。第一,长公式要点击的次数太多。一个嵌套五六层的公式,可能要按十几二十次"求值"才能走完,效率偏低。第二,它只能按顺序逐步走,无法直接跳到中间的某一段。如果你怀疑的是公式中段的一个条件判断,还是得从头点到尾。第三,它是"只读"的,不能在对话框里临时改参数试算,发现错误只能关掉对话框去修改公式,再重新打开求值。第四,遇到返回大范围数组或长文本的情况,对话框可能只显示部分内容,或者提示"无法显示计算结果"。
所以我的使用原则是:公式求值适合"全流程复盘",F9键适合"定点突破"。要用好这两个工具,关键是根据场景选对工具,后面会展开讲它们各自的适用场景。
3. F9键:编辑栏里的定点探针
3.1 一个被严重低估的快捷键
F9键在Excel里其实有两个完全不同的功能,这个区别必须搞清楚。
默认情况下,没有进入单元格编辑状态时按F9,Excel会重新计算所有工作簿,这是"全局重算"快捷键。很多人在公式调试时按F9发现没反应,或者整个表格闪了一下,就是因为没有先进入编辑模式。
正确操作是:先用鼠标双击单元格,或者选中单元格后按F2,进入编辑状态;然后在编辑栏或单元格里用鼠标选中公式的一部分;此时按下F9,Excel会对选中片段单独求值,编辑栏里立即显示这个片段的计算结果。
F9的原理就是把你选中的那段表达式当作一个独立计算单元,交给Excel的计算引擎,返回计算结果。如果结果是数组,还会显示成花括号形式,比如 {1;2;3;4},行之间用分号,列之间用逗号。这个能力非常恐怖,等于你在任何公式里插了一根探针,随时可以读出任意一段的真实值。
比如公式 =VLOOKUP(A2,价格表!A:B,2,0)+B2C2,你可以选中A2按F9,看看这个查找键实际是文本还是数字;也可以选中VLOOKUP(A2,价格表!A:B,2,0)按F9,看它返回的值是不是你意料中的;还可以选中B2C2按F9,确认乘法结果。一根探针,想插哪里就插哪里。
3.2 三种高频用法
我日常用F9,基本就三种场景。
第一种是查单元格引用到底装着什么。你怀疑A2的值和价格表A列不匹配,直接选中A2按F9。看到的结果可能让你吓一跳——显示的是"P001",但旁边肉眼看到的价格表里也是"P001",表面一致,实际一个是文本一个是数字。F9能帮你看到"值的内容",配合类型函数才能看到"值的类型",这一点下一节仔细说。
第二种是查某个条件表达式的结果。公式里有 IF(C2>=8000,"B",IF(...)),你想知道C2>=8000到底判断出什么,选中 C2>=8000 按 F9,返回TRUE或FALSE,一目了然。
第三种是查数组中间产物。比如公式 =SUM((A2:A10>10)*(B2:B10)),选中 (A2:A10>10) 按 F9,会显示 {FALSE;TRUE;FALSE;...} 这样的逻辑值数组,这就是Excel内部条件判断的"底稿"。
3.3 一个必须刻进DNA的安全规则
按完F9之后,编辑栏里显示的是计算结果。此时如果你按下回车,或者不小心点击了其他单元格,你的公式就会被替换成这个硬编码的计算结果,原始公式永久丢失。
这是F9最著名的坑,也是Excel使用者的经典翻车现场。我见过不止一个同事,把整个公式选中按F9,一看结果是数字,回车一敲,公式没了,当场傻眼。
提示:按F9后想保留公式,必须按Esc取消编辑状态。Esc是退出按键,按完之后编辑栏恢复原样,公式安全保留。
如果不小心已经回车了,立刻按Ctrl+Z撤销,公式还能回来。但最保险的做法还是养成肌肉记忆:F9只是临时预览,看完就Esc,除非你明确想用计算结果替换公式。
另外还有两个小坑值得注意。第一,选中的片段内容如果超过255个字符,F9可能会弹出提示或者干脆不计算。遇到长公式,把片段拆小一点再逐段按F9。第二,如果编辑栏里有换行符或者特殊格式,F9可能失效,这时可以先把公式复制到文本编辑器里格式化,再逐段排查。
4. 三个解剖实例:从懵到明白的完整过程
4.1 案例一:VLOOKUP返回#N/A,其实是文本型数字在作怪
某同事的报表,从系统导出的产品编号列,用VLOOKUP在价格表里查价格。公式写成 =VLOOKUP(A2,价格表!A:B,2,0),下拉之后大量返回#N/A。他拿着表来问我,说自己肉眼比对了很久,A2里的编号在价格表里明明存在,怎么会查不到。
我打开公式求值,一步步走。走到VLOOKUP参数那一步时,公式求值对话框显示A2被识别为"P001"。再走一步,VLOOKUP返回#N/A。到这里还看不出来问题,因为对话框只能显示值,不能显示类型。
接下来用F9定点爆炸。选中A2按F9,结果是"P001";选中价格表A列里看起来同样的那个单元格按F9,结果也是"P001"。两个显示一样,但用=ISNUMBER(A2)一测,FALSE;用=ISNUMBER(价格表A2)一测,TRUE。真相浮出水面:一个是文本型编号,一个被Excel存储为数值编号,表面都是"P001",内部分类完全不同。
VLOOKUP在做精确匹配时对数据类型极其敏感,文本"P001"匹配数值1001永远匹配不上,哪怕在单元格里显示出来一模一样。修复办法是把价格表的文本型数字转成数值格式:选中那一列,点"数据"选项卡下的"分列",直接点完成,文本就变成数值了。改完之后#N/A立刻消失。
这个案例给我的教训是:单元格看起来一样,不等于值一样。F9能让你看见值的内容,但要配合ISNUMBER、TYPE这类函数才能确认值的类型。数据格式不一致,是VLOOKUP类问题的第一大元凶。
4.2 案例二:IF嵌套顺序写反,业绩一万二却评上了B
有个绩效表,规则是业绩大于等于10000评A,大于等于8000评B,否则评C。公式是这样写的:
=IF(C2>=8000,"B",IF(C2>=10000,"A","C"))看起来没毛病,但业绩做了12000的员工,等级评出来居然是B。
用公式求值功能一帧一帧地看,问题立刻暴露。这个公式的执行路径是:先判断 C2>=8000,12000确实大于等于8000,条件成立,于是直接返回"B",根本不会进入内层的IF去判断C2>=10000。也就是说,业绩一万二的人永远评不上A,因为他在外层就被B拦截了。
再用F9验证:选中 C2>=8000 按F9,返回TRUE;选中 C2>=10000 按F9,也返回TRUE。两个条件都为TRUE,但外层IF优先处理,所以结果锁定为B。这不是语法错误,是逻辑顺序设计错了。
修复有两种思路。第一种是调整判断顺序,把高门槛放在前面:
=IF(C2>=10000,"A",IF(C2>=8000,"B","C"))第二种是直接用IFS,把条件平铺开,避免嵌套顺序带来的短路问题:
=IFS(C2>=10000,"A",C2>=8000,"B",TRUE,"C")这个案例说明,IF嵌套不是简单的"从上往下翻译成中文",而是严格从上到下的短路执行。用公式求值看一遍执行路径,比对着公式猜半天高效得多。
4.3 案例三:SUMIFS汇总少了一截,日期与文本的暗战
某个汇总表,要求按部门和月份统计销售额,公式是:
=SUMIFS(C:C,A:A,"销售部",B:B,"2024-01")同事手工筛选销售部1月份的数据,合计有5万,但公式算出来只有3.2万,差了一截。
这是典型的"条件写对了,可是类型不对"的问题。F9按住B2一查,结果显示的是2024/1/5这样的日期;再按=ISNUMBER(B2)一测,返回TRUE——B列是真正的日期格式。真正日期在Excel底层是整数序列值,比如2024/1/5对应的是45231,而公式条件里写的"2024-01"是纯文本,文本和数值序列永远不可能相等,所以匹配不上的那些行就被SUMIFS悄悄丢掉了。
修复方式是把日期条件改成真正的日期范围比较:
=SUMIFS(C:C,A:A,"销售部",B:B,">="&DATE(2024,1,1),B:B,"<"&DATE(2024,2,1))用DATE构造边界日期,再配合大于等于和小于,把1月完整框进去。这样算出来的结果才和手工筛选一致。
这个案例提醒我:SUMIFS、COUNTIFS、SUMPRODUCT这类统计函数,条件区域的格式和条件本身的格式必须对齐,日期、文本、数值各有各的脾气,错位了就是一个字——查不到。
5. 五步拆解术:把任何公式当案子破
5.1 第一步:看错误代码,圈定嫌疑范围
拿到出错的公式,第一步不是看公式,而是看错误代码。错误代码已经告诉你该往哪个方向查,#N/A查匹配,#VALUE!查类型,#DIV/0!查分母,#NAME?查拼写,#REF!查引用。这一步能帮你省掉至少一半的无意义排查。
有一个检查清单可以固化下来:遇到#N/A,优先验证查找值和查找区域的数据类型,其次检查匹配模式是0还是1,最后再看引用区域是否锁定。遇到#VALUE!,优先看参数类型,文本不能当数字用,数字不能直接连接区域。这相当于侦探拿到了第一份现场报告,不用再从头猜测。
5.2 第二步:结构化拆解,先看清公式的长相
长公式最难的一点是难看不出结构。我建议在排查前先做一次"格式化":把公式复制到文本编辑器里,每个函数占一行,按嵌套层级缩进。这样外层的骨架马上浮现,内层的逻辑也清楚得多。
比如这样一个公式:
=VLOOKUP(A2&"|"&B2,明细表!A:D,3,0)*IFERROR(1/(1+税率),0)格式化后就清晰了:
=VLOOKUP(A2&"|"&B2,明细表!A:D,3,0) * IFERROR(1/(1+税率),0)第一段负责拼接查找键并查值,第二段负责计算税率系数,两个模块之间的关联一目了然。之后再用F9逐段验证,比直接盯一整行公式容易太多。
另外,在编辑栏里点击公式的括号,Excel会高亮配对的括号,这能帮你快速确认括号是否匹配、函数参数边界在哪里。这个动作虽然不起眼,但在嵌套深的公式里非常救命。
5.3 第三步:分段验证,一次只测一个子表达式
拆解公式结构之后,进入正式验证阶段。核心方法只有一个:一次只测一个子表达式,先写预期,再按F9对照。
具体操作是把公式拆成"输入区—逻辑区—输出区"三段。输入区包括A2、B2、价格表引用这类原始数据;逻辑区包括条件判断、查找匹配、数学运算;输出区是整个公式的最终结果。先测输入区,确认原始数据格式和值没问题;再测逻辑区,确认每个判断和计算是否正确;最后测输出区,确认整体结果符合预期。
这个思路的核心是隔离变量。如果你把一整条公式按F9,最多只能看到最终结果,中间哪一步跑了调根本无从判断。但拆成三段逐段测,任何一个环节和预期不一致,马上就能定位到具体哪个参数、哪个条件在捣鬼。
5.4 第四步:数据格式自检清单
F9能看出来值的内容,但类型问题还需要几个辅助函数配合。建议每次排查多条件公式时,都快速过一遍这个数据格式自检清单:
| 检查项 | 检测方法 | 典型修复 |
|---|---|---|
| 文本型数字混入数值列 | =ISNUMBER(单元格) 返回FALSE | 用分列或选择性粘贴乘1转换 |
| 真日期与文本日期混用 | =ISNUMBER(单元格) 返回FALSE 或 TRUE不一致 | 用DATE构造日期边界,统一格式 |
| 首尾空格或全角空格 | =LEN(单元格) 和肉眼长度不一致 | TRIM去除空格,CLEAN去除换行符 |
| 文本大小写问题 | VLOOKUP不区分大小写,若需区分用EXACT | 统一大小写或用EXACT比对 |
这四项是Excel公式出错的高发区,尤其在做跨表匹配、多条件汇总的时候。数据格式一错,再漂亮的公式也是白搭。
5.5 第五步:复核引用与填充方向
最后一个隐蔽陷阱是引用漂移。单元格C2的公式向下填充到C100时,公式里的相对引用会跟着移动,如果你忘了在某些关键地方加$锁定,计算结果就悄悄偏离预期。
最常见的翻车现场是VLOOKUP的查找区域忘了锁定:=VLOOKUP(A2,数据表!A:B,2,0)向下拖到第50行时,查找区域跟着变成了数据表!A49:B50,结果自然全错。排查时选中相邻多个单元格,按F9分别查看公式中的引用是否还指在你所设想的区域,这是最直接的验证方式。
同时可以用"公式审核"组里的"追踪引用单元格"按钮,Excel会用箭头画出当前公式依赖了哪些区域,箭头指向哪里,数据流就跟到哪里。这张依赖图能帮你快速判断是不是引用范围画错了。
6. 把调试做在故障之前:进阶用法与我的实战习惯
6.1 用F9看内存数组,真正理解条件计数求和的本质
很多人用SUMPRODUCT、COUNTIFS时知其然不知其所以然,其实F9能让你直接看到这些函数内部生成的数组。
比如公式 =SUM((A2:A10>10)(B2:B10)),选中(A2:A10>10)按F9,你会看到 {FALSE;TRUE;FALSE;TRUE;...} 这样一串逻辑值数组。再选中(A2:A10>10)(B2:B10)按F9,你会看到数字数组,FALSE对应0,TRUE对应1,用布尔值去乘数值就实现了"满足条件的才参与求和"。
这就是条件求和的底层原理:逻辑判断生成布尔数组,布尔值乘数值生成加权数组,最后SUM把数组汇总。看懂了这一步,再复杂的数组公式都不神秘。在旧版Excel里数组公式需要Ctrl+Shift+Enter确认,新版Excel的动态数组引擎则直接支持数组运算,但F9的内内数组观察法在这两种环境里都同样有效。
有一点要提醒:如果数组区域太大,F9显示的内容会很长,甚至超出编辑栏的承受范围。遇到这种情况,把选中的区域缩小,或者在公式里加INDEX截断一部分,再按F9查看。
6.2 三个常被忽略的辅助调试工具
F9和公式求值是核心调试器,但有几件事它们干不了,需要其他工具补位。
错误检查规则是Excel自带的老牌功能,在"文件 > 选项 > 公式"里可以设置。勾选"公式与区域中其他公式不一致""遗漏区域中的单元格"等规则后,Excel会对可疑公式自动标出绿色小三角。这些规则虽然没有F9那么精准,但在批量检查大面积公式时非常省力,能帮你先把明显的异常筛出来。
追踪引用箭头在"公式审核"组里,和公式求值并排。点击"追踪引用单元格",Excel立即用蓝色箭头画出公式依赖的数据源,看到底引用了哪些区域、有没有引用到不该引用的行和列。对于跨表引用的复杂工作簿,这个图比任何公式文本都直观。
监视窗口也是好工具。在"公式审核"组里打开监视窗口,把几个关键单元格加进去,当你改动工作表里任何数据时,监视窗口会实时刷新这些单元格的公式计算结果。配合F9排查,你会发现整体找错的效率高一个量级。
6.3 三个预防性设计习惯,让公式天生不容易出错
调试做得再好,也不如一开始就把公式设计得干净。我总结了三招预防性设计,可以让后期排查成本大幅下降。
第一招是用命名区域替代裸引用。把价格表A:B定义为"价格表区域",公式写成 =VLOOKUP(A2,价格表区域,2,0),就算几个月后回头再看,你也知道这个区域是干什么的。用F9排查时,公式可读性好了,分段验证的粒度也更清晰。
第二招是用LET函数给中间结果取名。这是Excel 365才有的函数,但非常值得用。比如:
=LET(单价,VLOOKUP(A2,价格表区域,2,0),数量,B2,IFERROR(单价*数量,"数据异常"))把单价、数量这类中间量显式命名,公式的可读性直接上一个台阶。调第一段的时候选中"单价"那个VLOOKUP按F9,调第二段选中"单价*数量"按F9,不再需要在一长串公式里靠数括号来辨认边界。
第三招是用IFS、SWITCH这类结构化函数替代多层IF嵌套。多层IF不仅难读,还存在4.2那种短路顺序陷阱。IFS把条件平铺,每行一个条件一个结果,逻辑一目了然,调试也简单得多。
另外,不要把复杂逻辑硬塞进一个公式。适当拆辅助列、拆中间计算,在大多数业务场景下比写一个超级长公式划算得多。一个单元格只干一件事,出了问题也只需要改一个地方。
6.4 我踩过的几个F9的坑,以及现在的使用习惯
最后分享几个我真实踩过的坑,以及现在的操作习惯。
踩过的第一个坑,是把整个公式选中按F9再回车,公式当场变成结果数字。那次我重写了整整一个报表的公式,耗了一个多小时。从那以后我给自己定了一条铁律:按F9之后,手指离开回车键,要么按Esc,要么先Ctrl+C复制再按Esc。
第二个坑,是F9选中数组区域太大,结果返回#VALUE!。一开始我以为是公式有错,排查了半天才发现是数组显示不下的"幻象"。后来养成了习惯,要查数组先缩小范围,或者分几段查。
第三个坑,是在编辑模式下按F9后忘记了Esc,切到别的单元格时,预览的结果被提交成了公式。这种操作失误在忙碌的时候特别容易发生,唯一有效的办法就是形成肌肉记忆。
现在的习惯很简单:任何稍复杂的公式写完之后,先不急着向下填充,选中几个关键段按F9验一遍,确认每个中间值都符合预期再拖。排查出错公式时,第一步按F9交底,先定点爆炸可疑片段,再用公式求值走全流程,最后用追踪引用箭头复核依赖关系。这一套组合拳打下来,绝大多数公式问题都能在十分钟内定位。
这两个工具本身在官方文档里都有,随手就能查到用法,真正值钱的是这套"让公式自己交代"的排查思路。把这个思路练成肌肉记忆,你的公式能力会在一段时间之后明显感觉上了一个台阶,因为每一个公式的背后,你都看得见它每一步的脚印。