如何在Excel中少犯二(I)
作者:何明科
链接:https://zhuanlan.zhihu.com/p/23472480
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收到不少建议,要求开知乎Live来谈谈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的过程中,都要设置专门的一行进行检查,类似于化学方程式的配平检查。
(未完待续)
如何在Excel中少犯二(I)的更多相关文章
- 如何在Excel中通过VBA快速查找多列重复的值
今天项目组的一个同事问我如何快速的找到一个Excel中第3列和第5列的值完全重复的值,我想了想虽然Excel中自带查找重复值的功能,但是好像只能对同一列进行比较,所以就写了一个VBA进行处理,VBA非 ...
- [VBA]用一个简单例子说明如何在Excel中自定义函数
Excel中的函数无疑是强大的,但是再强大的战士也有他脆弱的脚后跟[1].这两天在使用Excel的时候遇到了一个需求,要在某一个单元格里面自动计算今天是星期几(如显示 Today is Tuesday ...
- 如何在Excel中提取小数点后面的数字?
Excel中,如果某个单元格中包含一个带小数,要用公式提取该数值小数点后面的数字,例如A1单元格中包含一个数值“59178.68”,在B1单元格中输入下面的公式: =RIGHT(A1,LEN(A1)- ...
- C#/VB.NET 如何在Excel中使用条件格式设置交替行颜色
说起高亮数据行,不让人想起了交替颜色行,有的人把交替颜色行也都设置成高亮,不仅不美观,而且对阅读还是个干扰.隔行交替的颜色是为了阅读不串行,这些行只是环境,数据才是主体.那么如何通过C#/VB.NET ...
- 如何在Excel中启用宏?
OFFICE2003版本中启用宏的方法: 1.首先打开EXCEL应用程序. 2.点击上方的"工具"--"宏"--"安全性" 3.在" ...
- 如何在EXCEL中找出第一列中不包含的第二列数据
1.找出第一列中不包含的第二列数据:=IFERROR(VLOOKUP(A:A,B:B,1,0),"无") 2.A列相同,B列相加:=SUMIF(G:G,G1,J:J)
- 如何在excel中把汉字转换成拼音
---恢复内容开始--- 1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表: 2 2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进 ...
- EXCEL-如何在excel中对图片进行批量排版
新建EXCEL->导入图片->如果每张图高度为33个单元格,共计10张图,那么将最后边的那张图(即正对着你的那一张)剪切粘贴到33*9行第一个单元格处->按F5定位"对象& ...
- Azure DevOps Server(TFS): 在Excel中解除服务器同步
通过Azure DevOps Server 提供与Excel集成的功能,用户可以非常便捷地使用Excel,实现工作项数据的同步. 对于需要批量处理数据.离线工作.制作临时报表的用户来说,这个功能必定成 ...
随机推荐
- js在关闭页面前弹出确认提示【转载】
最近项目中出现个bug,就是导出数据后,会提示确认导航,其实实际需求并不需要这个提示,可能是之前遗留的问题.查了下资料是在触发了onbeforeunload事件,那么剩下的就是代码组织问题了. 众所周 ...
- vim编辑器设置文件的fileformat
问题:dos格式文件传输到centos系统时,会在每行的结尾多一个^M,即dos文件中的换行符"\r\n"会被转换为unix文件中的换行符"\n",而此文件若是 ...
- gimagex 2.0.17 汉化版
软件名称: gimagex 2.0.17 汉化版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 1.31MB 图片预览: 软件简介: gimagex 2. ...
- Number Sequence (HDU 1711)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 2.MyBatis有代理增删改
2.1 创建一个javaweb项目MyBatis_Part1,并创建如下sql脚本 create user holly identified by sys; grant dba to holly; c ...
- 三大框架之hibernate的反转
选择工程.包名 Finish
- BGP多线单IP技术实现形式以及其他双线对比
自从电信与网通分离之后,北方网通与南方电信网络的互联瓶颈问题一直没有得到很好的解决,这个问题也严重困扰广大的ICP服务商.ICP也只能根据自己网站主流用户群是在南方还是在北方,服务重点是在南方还是北方 ...
- 如何在IIS8.5上面部署php
一.开启,设置win8.1自带的IIS 8.5组件服务器. 进入控制面板,选择程序和功能,打开或关闭Windows 功能,找到Internet information services,分别开启FTP ...
- 连续多个git提交发生了冲突时
git checkout -b test 创建并切换到分支test git clone git branch master git merge test 合并test到master (git merg ...
- Learning from the CakePHP source code - Part II
原文:http://debuggable.com/posts/learning-from-the-cakephp-source-code-part-ii:480f4dd6-57fc-4715-8709 ...