如何在Excel中少犯二(I)
收到不少留言和建议,要求开开Excel课程。然而考虑到知识储备有限,还是先写文章来满足大家的需求,同时从特别窄的话题开始:“如何在Excel中少犯二”。
从这个话题开始的理由特别简单:首先,时常在别人的Excel数据模型中发现各种细小错误,哪怕作者花费再多的时间把图表搞得再精美,顿时对整个模型的结论产生怀疑;其次,Excel数据模型是经常要在现场分享并不断调试数据,经常看见作者手忙脚乱地更改输入和公式,忙中经常出错。
巴菲特曾说,犯错少就是成功。特别是那些重大而简单的弱智错误。这个理论套用到Excel做数据模型上面,一样成立。
对于Excel这种人人都会的工具,少犯二的目标看似简单。然而,量变产生质变,当成千上万的数据堆积在一起,同时带来千丝万缕的函数关系,少犯二就会成为一个高大上的目标。如果不信,可以试试从1开始写数字写到600,能否保证一字不差(这是一个经典的街头骗局)。
因此在Excel中少犯二并不简单,如同要做到如何写好程序一样,需要引入一套方法论,在下面分步骤列出。
第一层提升输入质量
通过使用“数据有效性”功能,减少输入的错误,设置输入的有效性检查(比如:手机号码是11位等等),尽量避免"Garbage In, Garge Out"。
Excel数据模型中,存在不同类型的数据:常数、可调参数、中间结果、最终结果等等。不少的错误发生在混淆各种类型的数据或者更改了不能调整的中间结果而污染最终结果。因此可以考虑对不同的数据,用颜色或者worksheet进行区隔,下图左方就是利用颜色标注不同的数据:有些是供修改的,有些是最后结果及中间过程而不能修改。
这些措施都是为了在模型的制作过程以及调试过程中,避免误改误删数据。如果要想做到极致,还可以使用下图右方的方法,直接利用“保护工作表”功能,对不能修改的数据进行保护。
另外,对于一些经常使用的输入区域(比如,A1:A299),往往反复出现在Sum或者Vlookup等函数中,可以考虑将它们定义成变量,并可以在“名称管理器”中进行修改、增加和删除等管理。反复使用的时候就会非常方便,比如:=Vlookup(A1,data,2,false)这种简单的写法。
第二层提升输出质量和输出维度
不少人在用Excel输出结果的时候,往往就事论事,把输出局限在较小的范围,不仅容易忽略错误,而且会失去多个视角。但如果能够在现有输出结果的基础扩展审视输出的维度,就能获得更全息的视角。
以财务三张报表而言,当然可以妥妥得输出经典的报表格式,但如果能够多计算一些财务指标并放在合适的位置(如下图中所示的EBIDTA、Cash flow from operation、EBIDA/Interest Expenses等等),不仅可以部分校验运算过程,还能从多个维度反应企业的财务状况,当然也更容易发现可能存在的计算误差,从而提升输出的质量。
第三层检验运算过程
最简单粗暴的方式,利用函数框中对输入不同颜色的标注,对运算过程及输入参数进行检查,看是否达到预期或者有犯二的差错。
升级一些,可通过“追踪引用/从属单元格”,对运算过程进行检查,尽可能避免公式运算中输入参数的犯二。
再升级一些,可以对一些关键指标以及核心等式就行复检。比如对于财务报表中最基础的等式“资产=负债+权益”,在做Financial Modeling的过程中,都要设置专门的一行进行检查,类似于化学方程式的配平检查。
(未完待续)