现代财务理论认为,一项资源(包括投资项目、单项资产、整个企业)的经济价值取决于该资源未来现金流量的现值。有关现值测定的理论、方法和技术已经成为财务管理、金融保险和资产评估等领域的重要内容,可是如何测算现金流量的现值,一直被认为是件耗力费时、令人厌烦的工作。但随着Excel之类应用软件的广泛运用,其内置财务函数已将人们从繁琐的计算中解脱出来,同时也要求在相关专业课程中对现值测定的方法和技术等教学内容作出相应的调整。
一、现金流量现值通用表达式
根据时间价值原理,现金流量的现值(pv),是根据既定折现率(以rate表示)对若干期(以nper表示)末的一次性现金流量(即终值,以fv表示)或每期现金流量(如普通年金、预付年金、递延年金等,以pmt表示)进行折现的结果,故现金流量的现值取决于现金流量的金额、流向、时点、流速和频次。其中,金额是以绝对数的形式说明现金流量的多少;流向反映现金流入或流出的方向(一般以正号表示净流入,负号表示净流出);时点描述了现金流入或流出的具体日期;流速反映现金从支付到收回所需时间的长短(一般以期数表示,如年、半年、季、月、周或日等);频次说明现金流量的重复发生情况(如每年一次、每半年一次、每月一次等)。一次性收付款项、普通年金、预付年金和递延年金在流量、流向、时点、流速和频次等方面具有明显的规律性,故被统称为规则现金流量。在折现率固定不变的情况下,根据规则现金流量的这种内在规律性,可以得出用来计算这些规则现金流量现值的通式,如式(1)所示:
pv=pmt××(1+rate)+ (1)
式(1)中,pv——规则现金流量的现值(或之和);pmt——普通年金、预付年金或递延年金的每次收付金额;rate——折现率(在各期保持不变);nper1—— 一次性收付款项从收到付(或从付到收)的时间间隔或年金收付的次数; nper2——pmt首次支付的时点(如0,1,2,3,……),pmt为0时,nper2默认为1;fv—— 一次性收付款项的终值。
在教学和运用式(1)时,需注意以下问题:(1)rate>0,在各期保持不变。(2)nper1表示一笔款项从收到付(或从付到收)的时间间隔(如1年、2个半年、4个季度、12个月、54周等),或者年金收付的次数(如2次、3次、5次等)。可见,nper1只强调每次的时间跨度相同,其计量单位不一定是“年”,有可能是“半年”、“季度”、“月”、“周”和“次”等,其数值通常为自然数。在对nper1赋值时,应特别注意 rate 和 nper1在计量单位上的一致性。例如,同样是3年期年利率为 6% 的贷款,利息如果按年支付(或计算),rate 应为 6%,nper1为 3;利息如果按月支付(或计算),rate 则应调整为 6%/12,nper1相应调整为 3*12;利息如果按季支付(或计算),rate 则应为6%/4,nper1为 3*4。nper2也按上述原理予以调整。(3)由于是计算特定现金流量(Pmt或/和fv)的现值,故Pmt、fv不能同时为0。(4)如果pmt=0,fv≠0,nper2的值应设置为1,式(1)的结果才是一次性收付款项在复利期数为nper1条件下的现值。(5)如果pmt≠0,fv的值应设置为0,式(1)的结果才是年金的现值。如果是普通年金pmt首次支付的时点为第1期末,故nper2的值应为1;如果是预付年金,pmt首次支付的时点为第0期末,nper2的值应为0;如果是递延年金,pmt首次支付的时点最早在第2期末,故nper2的值将为2或2以上。(6)如果pmt≠0,fv≠0,nper2=1,式(1)的结果是每期末付息、到期按面值偿还的债券(下文此类债券简称为标准债券)的经济价值。还应注意,nper1个pmt是指第1期末至第nper1+nper2-1期末每期末的收付额均为pmt,共有nper1个,所以,fv的金额应该是第nper1+nper2-1期末的现金流量扣除pmt后的余额。在运用式(1)时,应防止fv被错误地直接按照第nper1+nper2-1期末的现金流量赋值,其金额应扣除pmt。(7)如果pmt=0,fv=1,nper2=1,式(1)可用来计算复利现值的系数;如果pmt=1,fv=0,nper2=1,式(1)可用来计算普通年金现值的系数;如果pmt=1,fv=0,nper2=0,式1则可用来计算预付年金现值的系数。如果nper2≥2(即首付收付发生在第2期或以后),式(1)的结果则是递延了nper2-1个期间、收付次数为nper1的递延年金的现值。
二、Excel内置财务函数PV功能分析
在传统方法下,规则现金流量现值的计算,一般是通过查阅根据式(1)编制的一次性收付款项复利现值系数表或普通年金现值系数表进行的,但其局限性十分明显,一方面系数表无法列示所有可能的折现率和期限,另一方面,行列再多的系数表也会在折现率变动、期数不为自然数的现实经济环境中失效。性能高超的财务计算器虽然能够在一定程度上简化这类问题的计算过程,但其效率仍然低下,并且容易出错,而功能强大、界面友好、过程简洁、结果直观的Excel应用软件则具有无法比拟的优越性。因此,熟练灵活运用Excel等软件来处理复杂的财务计算问题,已经成为当前财务人员必须具备的一项基本技能。
Excel应用软件中,内置财务函数pv能够直接计算一次性收付款项、普通年金和预付年金等规则现金流量的现值[所有现金流量序列的现值均可通过Excel应用软件列表计算,但根据现金流量的特点和折现率的变动情况来选用相应的内置函数则较为便捷。例如,在折现率固定不变的情况下,对于定期发生(前后期的时间间隔为1个期间)的不规则现金流量序列,其现值可通过函数npv计算;对于不一定定期发生(前后期的时间间隔可能不为1个期间)的不规则现金流量序列,其现值可通过函数xnpv计算。]。pv函数的表达式为:
现值=PV(rate,nper,pmt,fv,type) (2)
式(2)中,除nper、type外,其他参数的含义与式(1)中的相同。其中,nper相当于式(1)中的nper1,type取值分别为1或0,用以区别年金收付的时间是在各期的期初还是期末,其功能相当于式(1)中nper2取值为0或1的情形,但其适用面远不如nper2广泛。式(2)中,各参数之间的运算关系为:
现值=pmt××(1+rate)type+ (3)
因此,在教学和运用式(2)时,需特别注意以下问题:一是type作为判断年金收支时点的逻辑变量,对于一次性收付款项,不涉及type 的赋值问题。在计算预付年金的现值时,type的值设为1;在计算普通年金的现值时,type的值为0或省略。由于type是函数PV的最后一个参数,如果省略了type的值,其前的逗号可一并省略。二是内置财务函数PV默认以正负号区分现金流量的方向,根据式(2)计算出来的结果在正负号上与fv和(或)Pmt相反,为了使计算结果与fv和(或)Pmt正负号相同,必须在fv和(或)Pmt前加上负数(“-”)。后文均按此方法处理。三是通过对式(2)中pmt、fv、type等参数(rate和 nper均为必需参数,且均大于零)的合理赋值,PV函数才能分别用来计算一次性收付款项、普通年金和预付年金的现值,具体如表1所示。
三、Excel内置财务函数PV功能拓展与优化
遗憾的是,Excel应用软件中并没有直接计算递延年金现值的内置财务函数,但递延年金通常可看作普通年金(或预付年金)和特定期数一次性付款项的有机组合,因此,可以根据式(1)的原理来计算递延年金的现值。Excel应用软件中,可通过对内置财务函数PV进行四则运算并结合对相关参数进行合理赋值的方法来实现递延年金现值的自动计算,从而进一步拓展该函数的功能,式(4)便是一个较为简捷的递延年金现值计算式:
现值=PV(rate,nper1,-pmt,-fv,0)*PV(rate,nper2-1,0,-1,0) (4)
式(4)中,括号内各参数的含义与式(1)中的相同。当nper2为1时,式(4)与式(2)等效,因此,式(4)不仅可以用来计算递延年金的现值,而且可以用来计算一次性收付款项、普通年金和预付年金等规则现金流量的现值。但需注意的是,当pmt=0,fv≠0时,nper2的值应设置为1,式(1)的结果才是一次性收付款项在复利期数为nper1条件下的现值。
比较式(1)、式(2)和式(3)可知,Excel应用软件的内置财务函数PV无法直接计算递延年金现值的原因在于,该函数只设置了区分年金收付的时间是在各期的期初还是期末的逻辑变量“type”,而未设置能够判别pmt首次支付时点在第2期末或者其后的参数“nper2”。因此,可在式(2)的基础上对该函数的功能进行拓展和优化。假设规则现金流量的现值为PVREG,与计算该现值相关的各参数之间的函数关系则如式(5)所示:
规则现金流量的现值=PVREG(rate,nper1,pmt,fv,nper2) (5)
式(5)称为PVREG函数的表达式,括号内各参数的含义与式(1)中的相同,各参数之间的逻辑关系如式(1)所示。于是,PVREG函数便可以根据nper1、pmt、fv和nper2等参数的赋值情况分别用来计算一次性收付款项、普通年金、预付年金和递延年金的现值,以及标准债券的经济价值。
四、Excel自定义财务函数PVREG的编写与调用
当然,PVREG函数并不是Excel应用软件的内置函数,不能直接调用,只有按照式(1)的运算关系编写成自定义函数PVREG后,该函数才能被调用并将根据相关参数的赋值情况自动计算出相应现金流量及其序列的现值。Excel应用软件中,编写和调用自定义函数的步骤为:
一是按Alt和F11键打开VBA窗口,插入一个用户模块。
二是编写代码。将下述三段代码粘贴到通过上述步骤一所插入的用户模块中:
Function PVREG(rate, nper1, pmt, fv, nper2)
PVREG = pmt * ((1 - (1 + rate) ^ (-nper1)) / rate) * (1 + rate) ^ (1 - nper2) + fv / ((1 + rate) ^ (nper1 + nper2-1))
End Function
三是保存以备后用。点击工具栏中的保存按钮后即可保存。
四是调用自定义函数PVREG。点击工具栏中的Excel按钮,回到Excel窗口后,在任一单元格(如***1中的单元格C2、C4)中输入双引号内的内容(但不包括双引号)“=PVREG(”,接着点击编辑栏左边的fx按钮,即可调出包含rate、nper1、pmt、fv、nper2等参数的对话框(如***1窗口中的对话框),等待赋值,确定后即可计算计算与参数相对应的现值(如***1中的单元格B2、B4)。
例如,对于折现率率固定为10%(即rate为10%)、在未来5期内每期末(即nper1为5)收回现金流量10个单位(即pmt为10)、第5期末到期时(即nper1+nper2-1=5,故nper2=1)一次收回现金流量100个单位(即fv为100)的投资项目,其现值为100,计算该现值的表达式和结果分别如***1中的单元格A2和B2所示。又如,对于折现率率固定为10%(即rate为10%)、从第3期末起(即nper2为3,延迟的期数为2),在第3至7期内每期末(即nper1为5)收回现金流量10个单位(即pmt为10)、第7期末到期时(即nper1+nper2-1=7,故nper2=3)一次收回现金流量100个单位(即fv为100)的投资项目,其现值约为82.64,计算该现值的表达式和结果分别如***1中的单元格A4和B4所示。
除编写和调用自定义函数PVREG外,还可将单元格数据的引用、宏的录制和调用等方法相结合,构建自动计算规则现金流量现值的可视化通用模板,使相关参数的输入和计算的显示更加直观和便捷。限于篇幅,本文从略。
Excel应用软件的内置财务函数PV不仅能够根据pmt、fv、type等参数的赋值情况分别计算一次性收付款项、普通年金和预付年金的现值,而且可以用来计算标准债券的经济价值,但只有按本文提出的方法进一步拓展和优化函数PV的功能,该函数才能有效计算递延年金的现值,因此,建议Excel应用软件按照自定义函数PVREG中涉及的参数及其相互关系重新定义PV函数,提升PV函数对相关数据的处理能力。
[本文系湖北省会计学会2011~2012年会计科研课题“注册会计师职业判断持续改进策略研究”(项目号:HBKJ201113),湖北省教育科学“十二五”规划2012年度重点课题“湖北省地方工科院校卓越会计人才培养模式研究”(项目号:2012A015)阶段性研究成果]
参考文献:
[1]刘淑莲:《高级财务管理理论与实务》,东北财经大学出版社2005年版。
[2]王化成:《财务管理》,中国人民大学出版社2007年版。
[3]王晓民:《Excel金融计算教程》,清华大学出版社2004年版。
[4]杨雄胜:《高级财务管理》,东北财经大学出版社2004年版。
[5]张敦力、刘叶飙:《论Excel环境下普通年金现值系数表的编制原理与流程》,《财会学习》2010年第3期。
[6]张敦力、李银香:《论实际利率估测原理及其流程优化方略》,《江西财经大学学报》2008年第4期。
[7]Eugene F.Brighan,Michael C.Ehrhardt,财务管理理论与实务(Financial Management: Theory and Practice),中国财***经济出版社2003年版。
[8]Stephen A. Ross,Randolph W. Westerfield,Jeffery Jaffe.Corporate Finance (Fifth Edition),McGraw- Hill,1999.
转载请注明出处学文网 » PV函数测算规则现金流量现值教学探讨