第1章概论本书旨在为您提供一系列帮助您开发、利用和维护Excel模型的工具。财务模型的建立通常被看作只是对会计数字的添加或者是进行这种添加的方法。但是,本书将会给您展示精良的建立财务模型的实践操作;提供一些不同的技术要领并会给您精选出一些模型的模板。本书并不是一本Excel使用的工具书,因为关于这一方面已经有很多深入的手册了,更确切地说,本书是对一些技术的概述以便为您节省时间,帮助您在财务管理方面变得更为有效率。1.1、什么是财务建模财务建模涵盖了一个很宽泛的领域:从简单的制表到费用的加总再使之转变为项目所需的复杂的风险模型。此外,模型的设计还需要考虑很多其它的方面。具体地说,关于财务建模我们必须考虑:针对具体商业问题的解答建立特殊的操作程序。如现金流量表及其易变性;对数据进行分析处理;将未来因素纳入模型考虑,对未来的情况进行考察;将数据快速准确地转化为管理信息;在一个“安全”的环境中测试假设,如项目方案;通过一种结构化的途径来支持管理决策;更准确地认识问题中的相关变量和规则;更多地了解变量的变化过程及其变化方式;找出关键变量并考察其敏感性。1.2、电子表格的历史电子表格被应用于个人电脑是从20世纪70年代晚期VisiCalc(专为苹果机使用的一种操作软件)的使用开始的。由于这种工作表的高效率和准确性,使之在大范围内迅速取代了一些早期的方法(如高速计算机),同时,Lotus1-2-3的使用与IBM个人电脑的使用也同步增加。从此财务管理者也能用他们自己的数据来进行分析而不用求助于其它数据系统或是系统管理员了。会计模型,如预算和现金流量,能根据用户的要求进行建立,这就导致了:有更详细的信息用于决策制定;使在较低层次的决策制定成为可能;对特定环节的检验或其他替代方法之间具有灵活性。1995年,微软在AppleMacintosh引入了Excel并在20世纪80年代后期将它扩展到个人电脑上。Windows3.0版本引入包含了Excel的Office95,随着它的快速增长,Excel成为了工作表操作软件中的领头羊,被大多数个人电脑用户所使用。在成功开发Office97和Office2000后,微软在这一领域的占有率又被大大增强。1.3、工作表的功能Excel包含于微软工具包之中说明它现在是一种公认的标准,就如同人们把Word作为文字处理的标准格式一样。伴随着以下功能的加入,它的工作表的功能不断的加强:专业的函数;大量使得工作表自动化的宏程序的使用,或者说用编码进行公式编辑功能的使用;工作簿技术的使用,省去了单个工作表之间的联系的建立;对VisualBasic的使用提供了一种与微软其他应用程序之间通用的语言;同其他应用软件之间的数据交换功能;添加例如关于目标区和最优化问题的规划求解模型;三部分分析包,如财务CAD,@RISKorCrystalBall。今天对这种复杂分析软件包使用的结果是使得那些非专业程序员也能设计并建立起一套专业的解决商业问题的应用程序。Excel也是这样一种分析软件包。大部分人在他们需要解决一个商业问题的时候都会使用它。作者曾经有一个这样的经历,需要对一个项目的租赁可盈利性进行研究,并要编写一个模型来考察不同的基金组合决策。在耗费了大量的时间和精力后,这个模型终于成功运行并给出了一个答案。但是,这个答案很不清楚而且也不方便其他人去理解。这里并没有模型设计的方法论,而模型真的就那样“蹦出来了”。许多公司或学院很少会提供如何使用Excel来处理财务问题的指导,这对于大多数的管理者来说是司空见惯的了。这种做法的后果是许多模型建立都很少或者根本就不考虑模型的设计和模型未来的维护。更进一步地说,据估计很多商业上正在使用的模型本身都存在着严重的错误。用VisualBasic和C++来编写应用程序是为IT部门进行设计提供的。但是,通常情况下,Excel并不受这些影响因素的制约。这可能并不总是个问题,但是,一个预算模型可能成为财务管理者自己的“宠物设计”,而他可能会在此后离开这家公司或者可能被提升到新加坡去了。在文件里当然不会有注释,这样,就再没人能了解这个模型是如何工作的。人们经常说信息就是力量,但是因为这些管理者常常不能将他们的工作充分的备案,所以导致公司在模型的审核和错误的查找上不得不花费大量的金钱。这样看来,Excel的简洁可能也成为了它的一个弱点。作者强调:Excel的使用者应该按照简单设计的步骤进行,并且注意对于操作模型相关背景信息提供的必要性。在这样的方法的指导下,现在你在计划上花的时间将从长远来说为您提供超额收益:可操作性和使用轻松;可维护性;对于答案和结果的信心。在接下来的章节里,我们将会详细地说明如何综合运用Excel模型,来制作功能更强大、更有活力的工作表。1.4、本书的目标本书的目标就是展示一系列的Excel在财务建模方面的应用。这一系列的应用出自于一位致力于将公司财务理论应用于工作表中长达10年之久的非程序编写员。建模需要了解如何用Excel建立模型,并且将财务知识和设计与Excel结合在一起,特别是:设计方法和设计过程;怎样将设计想法变成应用中的模型;改进现有模型的有用技术;使简单的模型更有用、更可靠;如何加入风险分析技术;利用最优化和目标策略;将所用的技术结合成一个标准和模板。操作者们需要将对工作表技术作为核心技能来理解。现在的公司掌握着越来越多的数据而且需要用一些低水平的简单分析工具。通过建立模型,操作者可以更好地了解:单个变量如何变动;怎样去找出应该包含在计算中的新变量;怎样分离出对未来测试的关键变量;如何通过方案测试和案例分析来避免代价昂贵的错误。举一个例子,通过对某些会计模型的替换而建立的简单的外包模型可能显示一个正的净现金流量。一个正确建立的模型不仅能找到答案,而且能:列出所有的规则和输入;提供基于不同参数值的一系列结果;提供关键变量的图表,用来显示它们对于其他变量变动的弹性;列出风险和不确定性的水平;显示有多大的可能性你将会得到预测的结果。因此,本书的目的是应用Excel和财务知识把二者结合起来,帮助你建立更强大、更有活力的工作表。1.5、工作表举例图1—1是设计工作表的一个反面例子。这张工作表可能是你用来显示一个项目的净现金流量的。这是在许多公司里使用的众多工作表中比较典型的一个例子,它存在一系列的问题,我们将在下面一一给出。这个模型是光盘中命名为Simple_Model.xls的文件。图1-1(原书第7页f.g1.1)它的主要问题可以归结为:没有把对输入、计算、输出的布局设计清楚地标明;没有输入部分,不知道模型中的变量有哪些;没有对输入进行特别着色;没有用边框和阴影来增强报告的外观;没有对输入数据的有效性进行限制,例如,确保输入数据具有正确的类型和数据长度;将不同小数位数的数字格式混合在一起。方括号和红颜色的使用能增强此模型,因为方括号很容易在打印出来的报告上被识别,而且红色一般是负数的颜色;将数字和公式混合在一起。第10行中的税额计算将税率对于每一个单元格都固定。如果税率发生变化怎么办?单元格G10中有一处计算错误,单元格本应该是输入公式,但是输入的却是数字;公式测试显示单元格B10和B17中是直接输入数字而不是利用公式计算,当贴现率或税率发生变动时候,数值不会随之发生变化;没有根据结果得出的操作报告。5,411是否已经是满足了操作的底线;条件格式化能将结果注重显现出来,例如,这个单元格的颜色将根据结果确定;没有函数的使用,因为净现值是使用每个时期的变量值进行计算得出来的。通过使用NPV函数可以减少对每个单元格的赋值,从而减少可能出现的数字错误;没有敏感性分析。当改变贴现率或者没有按计划形成利润会有什么情况发生?图表一般用来显示管理现金流量或者显示敏感性分析。例如,一个累计现金流量表表示的是可获得的回报;没有对关键变量进行特别命名;工作表没有分开显示。下面的表格中计算了设备的税收折旧,但是这并不清楚它是不是现金流量的一部分;没有对单个单元格的批注,也完全没有对整个模型如何工作进行说明;作者没有对数字做出解释的信息;这个模型不适合打印。模型没有页眉和页脚指示,例如,文件名和编写日期。打印要输出包括税收在内的所有结果。以上的列表从模型建立的结构、设计和方法上罗列了这个模型的缺点。如果管理者做出的所有决策都是基于这样的一类表格,他很有可能会做出错误的决策。即使是很快做出来的,这个模型也因为存在计算错误而失败。如果使用这样的工作表进行管理可能会造成许多严重的失败,但在对这个模型重新设计后,可能会纠正这些错误。建立正确的模型可以避免很多类似的错误。1.6、小结Excel的使用是操作者的核心技能。Excel是一个功能强大的工具,但是,极少数的用户接受过正规的模型技术的培训。本章还给出了一个简单的工作表及其在设计和构建方面包含的错误。在接下来的章节里,我们会提纲挈领地介绍如何应用模型来建立有活力和可以维护的工作表。第2章模型设计导论在第一章里,我们已经看到了传统的模型设计的缺陷之处。这种传统设计从本质上说只是将Excel用作一大组自动化的会计文件。如果我们的目的是依据Excel做出决策或者我们要完全依赖于这个结果,那么我们必须采用一种不同的途径,一种更专业化的途径。这种途径更多地关注目标、用户报告和结果的产生过程。图2-1概括了设计中的几个阶段。图2-1模型设计1、所有模型都遵循一定的设计程序和方法;2、确定目标和对象;3、确定用户需求和必要的用户交流;4、列出关键变量和规则;5、将计算分解成若干个可操作的群组;6、制作出单个模板;7、列出菜单结构;8、管理报告和小结;9、模型发展如灵敏度分析;10、测试和审核;11、应用操作的保护;12、备案;13、征求同行的意见。1.1、模型设计基础设计是个性化的,你开发出自己认可的、欣赏的模型风格,你就能轻而易举地将其重复运用。这听起来可能很简单,但一个正确实用的设计方法会大大缩短模型设计和错误纠正的时间。设计的必要性取决于应用的复杂性,你必须对不同种类的工作表采用不同的计划和方法。在模型设计中,你可能想要多次的插入行或者是删除列,又或者是在工作的某个阶段想要了解一个具体单元格的公式如何运行。想要做到不过多考虑就能正确地使用关键的公式其实是很简单的。清楚地列出需要考虑的事项能够便于更好的设计模型。所有的模型设计都遵循统一的设计步骤和方法,并且工作表也遵循一定的设计格式。本书中的例子毫无疑问地是按照这样的原则编排和设计的。对于一个人来说,简单的工作表就可能够用,而模型的设计也必须符合简单的规则,特别是模型会被其他人使用或者被合并用于决策的制定。在基础的格式中,这就意味着要将模型中的功能划分成输入、计算和输出三个区域。2.2、对象很多人并不对对象和目标进行深入地考虑。尽管下面说的听起来很简单,但是这样做确实是有益的:将对象和目标记录在文件中,并在模型设计的过程中不时地进行参照以保证你并没有偏离最初的想法。模型常常能给我们提供更多的信息,但在很多例子中,由于答案隐藏在计算中,所以我们很难获取信息。举个例子,一个简单的现金流量的预算也能更深地用于记录实际的损益表和资产负债表。有了预算的和实际的数字,在绝对数和相对数差异基础之上的差异分析报告就可以和管理报告还有图表一起形成单个的报告。2.3、用户界面这个需要很仔细的核查,因为这一项需要你和你的用户一起完成。也许对于同一个模型会有许多不同的用户,他们对于输入、其他一些细节和信息有不同的要求。早期建立的模型有时会将变量放在左边,在标签和数字之间,例如税率。但是,用户可能希望在同一个地方看到所有的输入,并且需要有关于在哪里输入数据和输入什么样的数据的提示与指导。通常,如果人们在拿到一份新的应用软件的时候,需要花费很长的时间去了解它如何工作和在什么地方输入数据,这样往往令人感到沮丧。VisualBasic编程系统是通过先设计对话框,然后对按钮赋予一段操作程序,对它进行控制并使之工作。对Excel来说,