像统计函数、工程函数一样,在Excel中还提供了许多财务函数。财务函数可以进行一般的财务计算,如确定贷款的支付额、投资的未来值或净现值,以及债券或息票的价值。这些财务函数大体上可分为四类:投资计算函数、折旧计算函数、偿还率计算函数、债券及其他金融函数。它们为财务分析提供了极大的便利。使用这些函数不必理解高级财务知识,只要填写变量值就可以了。在下文中,凡是投资的金额都以负数形式表示,收益以正数形式表示。
在介绍具体的财务函数之前,我们首先来了解一下财务函数中常见的参数:
未来值 (fv)--在所有付款发生后的投资或贷款的价值。
期间数 (nper)--为总投资(或贷款)期,即该项投资(或贷款)的付款期总数。
付款 (pmt)--对于一项投资或贷款的定期支付数额。其数值在整个年金期间保持不变。通常 pmt 包括本金和利息,但不包括其他费用及税款。
现值 (pv)--在投资期初的投资或贷款的价值。例如,贷款的现值为所借入的本金数额。
利率 (rate)--投资或贷款的利率或贴现率。
类型 (type)--付款期间内进行支付的间隔,如在月初或月末,用0或1表示。
日计数基准类型(basis)--为日计数基准类型。Basis为0 或省略代表US (NASD) 30/360 ,为1代表实际天数/实际天数 ,为2代表实际天数/360 ,为3代表实际天数/365 ,为4代表欧洲30/360。
接下来,我们将分别举例说明各种不同的财务函数的应用。在本文中主要介绍各类型的典型财务函数,更多的财务函数请参看附表及相关书籍。如果下文中所介绍的函数不可用,返回错误值 #NAME?,请安装并加载"分析工具库"加载宏。操作方法为:
1、在"工具"菜单上,单击"加载宏"。
2、在"可用加载宏"列表中,选中"分析工具库"框,再单击"确定"。
一、投资计算函数
投资计算函数可分为与未来值fv有关,与付款pmt有关,与现值pv有关,与复利计算有关及与期间数有关几类函数。
1、与未来值fv有关的函数--FV、FVSCHEDULE
2、与付款pmt有关的函数--IPMT、ISPMT、PMT、PPMT
3、与现值pv有关的函数--NPV、PV、XNPV
4、与复利计算有关的函数--EFFECT、NOMINAL
5、与期间数有关的函数--NPER
在投资计算函数中,笔者将重点介绍FV、NPV、PMT、PV函数。
(一) 求某项投资的未来值FV
在日常工作与生活中,我们经常会遇到要计算某项投资的未来值的情况,此时利用Excel函数FV进行计算后,可以帮助我们进行一些有计划、有目的、有效益的投资。FV函数基于固定利率及等额分期付款方式,返回某项投资的未来值。
语法形式为FV(rate,nper,pmt,pv,type)。其中rate为各期利率,是一固定值,nper为总投资(或贷款)期,即该项投资(或贷款)的付款期总数,pv为各期所应付给(或得到)的金额,其数值在整个年金期间(或投资期内)保持不变,通常Pv包括本金和利息,但不包括其它费用及税款,pv为现值,或一系列未来付款当前值的累积和,也称为本金,如果省略pv,则假设其值为零,type为数字0或1,用以指定各期的付款时间是在期初还是期末,如果省略t,则假设其值为零。
例如:假如某人两年后需要一笔比较大的学习费用支出,计划从现在起每月初存入2000元,如果按年利2.25%,按月计息(月利为2.25%/12),那么两年以后该账户的存款额会是多少呢?
公式写为:FV(2.25%/12, 24,-2000,0,1)
图1
(二) 求投资的净现值NPVNPV函数基于一系列现金流和固定的各期贴现率,返回一项投资的净现值。投资的净现值是指未来各期支出(负值)和收入(正值)的当前值的总和。
语法形式为:NPV(rate,value1,value2, ...) 其中,rate为各期贴现率,是一固定值;value1,value2,...代表1到29笔支出及收入的参数值,value1,value2,...所属各期间的长度必须相等,而且支付及收入的时间都发生在期末。需要注意的是:NPV按次序使用value1,value2,来注释现金流的次序。所以一定要保证支出和收入的数额按正确的顺序输入。如果参数是数值、空白单元格、逻辑值或表示数值的文字表示式,则都会计算在内;如果参数是错误值或不能转化为数值的文字,则被忽略,如果参数是一个数组或引用,只有其中的数值部分计算在内。忽略数组或引用中的空白单元格、逻辑值、文字及错误值。
例如,假设开一家电器经销店。初期投资¥200,000,而希望未来五年中各年的收入分别为¥20,000、¥40,000、¥50,000、¥80,000和¥120,000。假定每年的贴现率是8%(相当于通贷膨胀率或竞争投资的利率),则投资的净现值的公式是:
=NPV(A2, A4:A8)+A3
在该例中,一开始投资的¥200,000并不包含在v参数中,因为此项付款发生在第一期的期初。假设该电器店的营业到第六年时,要重新装修门面,估计要付出¥40,000,则六年后书店投资的净现值为:
=NPV(A2, A4:A8, A9)+A3
如果期初投资的付款发生在期末,则 投资的净现值的公式是:
=NPV(A2, A3:A8)
图2
(三) 求贷款分期偿还额PMTPMT函数基于固定利率及等额分期付款方式,返回投资或贷款的每期付款额。PMT函数可以计算为偿还一笔贷款,要求在一定周期内支付完时,每次需要支付的偿还额,也就是我们平时所说的"分期付款"。比如借购房贷款或其它贷款时,可以计算每期的偿还额。
其语法形式为:PMT(rate,nper,pv,fv,type) 其中,rate为各期利率,是一固定值,nper为总投资(或贷款)期,即该项投资(或贷款)的付款期总数,pv为现值,或一系列未来付款当前值的累积和,也称为本金,fv为未来值,或在最后一次付款后希望得到的现金余额,如果省略fv,则假设其值为零(例如,一笔贷款的未来值即为零),type为0或1,用以指定各期的付款时间是在期初还是期末。如果省略type,则假设其值为零。
例如,需要10个月付清的年利率为8%的¥10,000贷款的月支额为:
PMT(8%/12,10,10000) 计算结果为:-¥1,037.03。
(四) 求某项投资的现值PV
PV函数用来计算某项投资的现值。年金现值就是未来各期年金现在的价值的总和。如果投资回收的当前价值大于投资的价值,则这项投资是有收益的。
其语法形式为:PV(rate,nper,pmt,fv,type) 其中Rate为各期利率。Nper为总投资(或贷款)期,即该项投资(或贷款)的付款期总数。Pmt为各期所应支付的金额,其数值在整个年金期间保持不变。通常 pmt 包括本金和利息,但不包括其他费用及税款。Fv 为未来值,或在最后一次支付后希望得到的现金余额,如果省略 fv,则假设其值为零(一笔贷款的未来值即为零)。Type用以指定各期的付款时间是在期初还是期末。
例如,假设要购买一项保险年金,该保险可以在今后二十年内于每月末回报¥600。此项年金的购买成本为80,000,假定投资回报率为8%。那么该项年金的现值为:
PV(0.08/12, 12*20,600,0) 计算结果为:¥-71,732.58。
负值表示这是一笔付款,也就是支出现金流。年金(¥-71,732.58)的现值小于实际支付的(¥80,000)。因此,这不是一项合算的投资。
图3
二、 折旧计算函数折旧计算函数主要包括AMORDEGRC、AMORLINC、DB、DDB、SLN、SYD、VDB。这些函数都是用来计算资产折旧的,只是采用了不同的计算方法。这里,对于具体的计算公式不再赘述,具体选用哪种折旧方法,则须视各单位情况而定。
三、偿还率计算函数
偿还率计算函数主要用以计算内部收益率,包括IRR、MIRR、RATE和XIRR几个函数。
(一) 返回内部收益率的函数--IRR
IRR函数返回由数值代表的一组现金流的内部收益率。这些现金流不一定必须为均衡的,但作为年金,它们必须按固定的间隔发生,如按月或按年。内部收益率为投资的回收利率,其中包含定期支付(负值)和收入(正值)。
其语法形式为IRR(values,guess) 其中values为数组或单元格的引用,包含用来计算内部收益率的数字,values必须包含至少一个正值和一个负值,以计算内部收益率,函数IRR根据数值的顺序来解释现金流的顺序,故应确定按需要的顺序输入了支付和收入的数值,如果数组或引用包含文本、逻辑值或空白单元格,这些数值将被忽略;guess为对函数IRR计算结果的估计值,excel使用迭代法计算函数IRR从guess开始,函数IRR不断修正收益率,直至结果的精度达到0.00001%,如果函数IRR经过20次迭代,仍未找到结果,则返回错误值#NUM!,在大多数情况下,并不需要为函数IRR的计算提供guess值,如果省略guess,假设它为0.1(10%)。如果函数IRR返回错误值#NUM!,或结果没有靠近期望值,可以给guess换一个值再试一下。
例如,如果要开办一家服装商店,预计投资为¥110,000,并预期为今后五年的净收益为:¥15,000、¥21,000、¥28,000、¥36,000和¥45,000。分别求出投资两年、四年以及五年后的内部收益率。
图4
在工作表的B1:B6输入数据"函数.xls"所示,计算此项投资四年后的内部收益率IRR(B1:B5)为-3.27%;计算此项投资五年后的内部收益率IRR(B1:B6)为8.35%;计算两年后的内部收益率时必须在函数中包含guess,即IRR(B1:B3,-10%)为-48.96%。(二) 用RATE函数计算某项投资的实际赢利
在经济生活中,经常要评估当前某项投资的运作情况,或某个新企业的现状。例如某承包人建议你贷给他30000元,用作公共工程建设资金,并同意每年付给你9000元,共付五年,以此作为这笔贷款的最低回报。那么你如何去决策这笔投资?如何知道这项投资的回报率呢?对于这种周期性偿付或是一次偿付完的投资,用RATE函数可以很快地计算出实际的赢利。其语法形式为RATE(nper,pmt,pv,fv,type,guess)。
具体操作步骤如下:
1、选取存放数据的单元格,并按上述相似的方法把此单元格指定为"百分数"的格式。
2、插入函数RATE,打开"粘贴函数"对话框。
3、在"粘贴函数"对话框中,在"Nper"中输入偿还周期5(年),在"Pmt"中输入7000(每年的回报额),在"Pv"中输入-30000(投资金额)。即公式为=RATE(5,9000,-30000)
4、确定后计算结果为15.24%。这就是本项投资的每年实际赢利,你可以根据这个值判断这个赢利是否满意,或是决定投资其它项目,或是重新谈判每年的回报。
四、债券及其他金融函数
债券及其他金融函数又可分为计算本金、利息的函数,与利息支付时间有关的函数、与利率收益率有关的函数、与修正期限有关的函数、与有价证券有关的函数以及与证券价格表示有关的函数。
1、计算本金、利息的函数--CUMPRINC、ACCRINT、ACCRINTM、CUMIPMT、COUPNUM
2、与利息支付时间有关的函数--COUPDAYBS、COUPDAYS、COUPDAYSNC、COUPNCD、COUPPCD
3、 与利率收益率有关的函数--INTRATE、ODDFYIELD、ODDLYIELD、TBILLEQ、TBILLPRICE、TBILLYIELD、YIELD、YIELDDISC、YIELDMAT
4、与修正期限有关的函数--DURATION、MDURATION
5、与有价证券有关的函数--DISC、ODDFPRICE、ODDLPRICE、PRICE、PRICEDISC、PRICEMAT、RECEIVED
6、与证券价格表示有关的函数--DOLLARDE、DOLLARFR
在债券及其他金融函数中,笔者将重点介绍函数ACCRINT、CUMPRINC、DISC。
(一)求定期付息有价证券的应计利息的函数ACCRINT
ACCRINT函数可以返回定期付息有价证券的应计利息。
其语法形式为ACCRINT(issue,first_interest,settlement,rate,par,frequency,basis)
其中issue为有价证券的发行日,first_interest为有价证券的起息日,settlement为有价证券的成交日,即在发行日之后,有价证券卖给购买者的日期,rate为有价证券的年息票利率,par为有价证券的票面价值,如果省略par,函数ACCRINT就会自动将par设置为¥1000,frequency为年付息次数,basis为日计数基准类型。
例如,某国库券的交易情况为:发行日为2008年3月1日;起息日为2008年8月31日;成交日为2008年5月1日,息票利率为10.0%;票面价值为¥1,000;按半年期付息;日计数基准为30/360,那么应计利息为:
图5
(二)求本金数额CUMPRINCCUMPRINC函数用于返回一笔货款在给定的st到en期间累计偿还的本金数额。其语法形式为CUMPRINC(rate,nper,pv,start_period,end_period,type) 其中rate为利率,nper为总付款期数,pv为现值,start_period为计算中的首期,付款期数从1开始计数,end_period为计算中的末期,type为付款时间类型。
例如,一笔住房抵押贷款的交易情况如下:年利率为9.00%;期限为30年;现值为¥125,000。由上述已知条件可以计算出:r=9.00%/12=0.0075,np=30*12=360。
图6
那么该笔贷款在第下半年偿还的全部本金之中(第7期到第12期)为: =CUMPRINC(A2/12,A3*12,A4,7,12,0)计算结果为:-436.568194。该笔贷款在第一个月偿还的本金为:=CUMPRINC(A2/12,A3*12,A4,1,1,0)计算结果为:-68.27827118。
(三) 求有价证券的贴现率DISC
DISC函数返回有价证券的贴现率。
其语法形式为DISC(settlement,maturity,pr,redemption,basis) 其中settlement为有价证券的成交日,即在发行日之后,有价证券卖给购买者的日期,maturity为有价证券的到日期,到期日是有价证券有效期截止时的日期,pr为面值为"¥100"的有价证券的价格,redemption为面值为"¥100"的有价证券的清偿价格,basis为日计数基准类型。
例如:某债券的交易情况如下:成交日为99年3月18日,到期日为99年8月7日,价格为¥48.834,清偿价格为¥52,日计数基准为实际天数/360。那么该债券的贴现率为: DISC("99/3/18","99/8/7",48.834,52,2) 计算结果为:0.154355363。
函数名称 | 函数说明 | 语法形式 |
ACCRINT | 返回定期付息有价证券的应计利息。 | ACCRINT(issue,first_interest, settlement,rate,par,frequency, basis) |
ACCRINTM | 返回到期一次性付息有价证券的应计利息。 | ACCRINTM(issue,maturity,rate, par,basis) |
AMORDEGRC | 返回每个会计期间的折旧值。此函数是为法国会计系统提供的。 | AMORDEGRC(cost,date_purchased, first_period,salvage,period, rate,basis) |
AMORLINC | 返回每个会计期间的折旧值,该函数为法国会计系统提供。 | AMORLINC(cost,date_purchased, first_period,salvage,period, rate,basis) |
COUPDAYBS | 返回当前付息期内截止到成交日的天数。 | COUPDAYBS(settlement,maturity, frequency, basis) |
COUPDAYS | 返回成交日所在的付息期的天数。 | COUPDAYS(settlement,maturity, frequency, basis) |
COUPDAYSNC | 返回从成交日到下一付息日之间的天数。 | COUPDAYSNC(settlement,maturity, frequency, basis) |
COUPNCD | 返回成交日过后的下一付息日的日期。 | COUPNCD(settlement,maturity, frequency, basis) |
COUPNUM | 返回成交日和到期日之间的利息应付次数,向上取整到最近的整数。 | COUPNUM(settlement,maturity, frequency, basis) |
COUPPCD | 返回成交日之前的上一付息日的日期。 | COUPPCD(settlement,maturity, frequency, basis) |
CUMIPMT | 返回一笔贷款在给定的 start-period 到 end-period 期间累计偿还的利息数额。 | CUMIPMT(rate,nper,pv,start_period, end_period,type) |
CUMPRINC | 返回一笔贷款在给定的 start-period 到 end-period 期间累计偿还的本金数额。 | CUMPRINC(rate,nper,pv,start_period, end_period,type) |
DB | 使用固定余额递减法,计算一笔资产在给定期间内的折旧值。 | DB(cost,salvage,life,period,month) |
DDB | 使用双倍余额递减法或其他指定方法,计算一笔资产在给定期间内的折旧值。 | DDB(cost,salvage,life,period,factor) |
DISC | 返回有价证券的贴现率。 | DISC(settlement,maturity,pr, redemption,basis) |
DOLLARDE | 将按分数表示的价格转换为按小数表示的价格,如证券价格,转换为小数表示的数字。 | DOLLARDE(fractional_dollar, fraction) |
DOLLARFR | 将按小数表示的价格转换为按分数表示的价格。如证券价格,转换为分数型数字。 | DOLLARFR(decimal_dollar, fraction) |
DURATION | 返回假设面值 $100 的定期付息有价证券的修正期限。期限定义为一系列现金流现值的加权平均值,用于计量债券价格对于收益率变化的敏感程度。 | DURATION(settlement,maturity, coupon yld,frequency,basis) |
EFFECT | 利用给定的名义年利率和一年中的复利期次,计算实际年利率。 | EFFECT(nominal_rate,npery) |
FV | 基于固定利率及等额分期付款方式,返回某项投资的未来值。 | FV(rate,nper,pmt,pv,type) |
FVSCHEDULE | 基于一系列复利返回本金的未来值。函数 FVSCHDULE 用于计算某项投资在变动或可调利率下的未来值。 | FVSCHEDULE(principal,schedule) |
INTRATE | 返回一次性付息证券的利率。 | INTRATE(settlement,maturity, investment,redemption,basis) |
IPMT | 基于固定利率及等额分期付款方式,返回投资或贷款在某一给定期次内的利息偿还额。 | IPMT(rate,per,nper,pv,fv,type) |
IRR | 返回由数值代表的一组现金流的内部收益率。 | IRR(values,guess) |
ISPMT | 计算特定投资期内要支付的利息。 | ISPMT(rate,per,nper,pv) |
MDURATION | 返回假设面值 $100 的有价证券的 Macauley 修正期限。 | MDURATION(settlement,maturity, coupon,yld,frequency,basis) |
MIRR | 返回某一连续期间内现金流的修正内部收益率。 | MIRR(values,finance_rate, reinvest_rate) |
NOMINAL | 基于给定的实际利率和年复利期数,返回名义年利率。 | NOMINAL(effect_rate,npery) |
NPER | 基于固定利率及等额分期付款方式,返回某项投资(或贷款)的总期数。 | NPER(rate, pmt, pv, fv, type) |
NPV | 通过使用贴现率以及一系列未来支出(负值)和收入(正值),返回一项投资的净现值。 | NPV(rate,value1,value2, ...) |
ODDFPRICE | 返回首期付息日不固定的面值 $100 的有价证券的价格 | ODDFPRICE(settlement,maturity, issue,first_coupon,rate,yld, redemption, frequency,basis) |
ODDFYIELD | 返回首期付息日不固定的有价证券(长期或短期)的收益率。 | ODDFYIELD(settlement,maturity, issue,first_coupon,rate,pr, redemption, frequency,basis) |
ODDLPRICE | 返回末期付息日不固定的面值 $100 的有价证券(长期或短期)的价格。 | ODDLPRICE(settlement,maturity, last_interest,rate,yld,redemption, frequency,basis) |
ODDLYIELD | 返回末期付息日不固定的有价证券(长期或短期)的收益率。 | ODDLYIELD(settlement,maturity, last_interest,rate,pr,redemption, frequency,basis) |
PMT | 基于固定利率及等额分期付款方式,返回贷款的每期付款额。 | PMT(rate,nper,pv,fv,type) |
PPMT | 基于固定利率及等额分期付款方式,返回投资在某一给定期间内的本金偿还额。 | PPMT(rate,per,nper,pv,fv,type) |
PRICE | 返回定期付息的面值 $100 的有价证券的价格。 | PRICE(settlement,maturity, rate,yld,redemption,frequency, basis) |
PRICEDISC | 返回折价发行的面值 $100 的有价证券的价格。 | PRICEDISC(settlement,maturity, discount,redemption,basis) |
PRICEMAT | 返回到期付息的面值 $100 的有价证券的价格。 | PRICEMAT(settlement,maturity, issue,rate,yld,basis) |
PV | 返回投资的现值。现值为一系列未来付款的当前值的累积和。例如,借入方的借入款即为贷出方贷款的现值。 | PV(rate,nper,pmt,fv,type) |
RATE | 返回年金的各期利率。函数 RATE 通过迭代法计算得出,并且可能无解或有多个解。 | RATE(nper,pmt,pv,fv,type,guess) |
RECEIVED | 返回一次性付息的有价证券到期收回的金额。 | RECEIVED(settlement,maturity, investment,discount,basis) |
SLN | 返回某项资产在一个期间中的线性折旧值。 | SLN(cost,salvage,life) |
SYD | 返回某项资产按年限总和折旧法计算的指定期间的折旧值。 | SYD(cost,salvage,life,per) |
TBILLEQ | 返回国库券的等效收益率。 | TBILLEQ(settlement,maturity, discount) |
TBILLPRICE | 返回面值 $100 的国库券的价格。 | TBILLPRICE(settlement,maturity, discount) |
TBILLYIELD | 返回国库券的收益率。 | TBILLYIELD(settlement,maturity,pr) |
VDB | 使用双倍余额递减法或其他指定的方法,返回指定的任何期间内(包括部分期间)的资产折旧值。函数 VDB 代表可变余额递减法。 | VDB(cost,salvage,life,start_period, end_period,factor,no_switch) |
XIRR | 返回一组现金流的内部收益率,这些现金流不一定定期发生。若要计算一组定期现金流的内部收益率,请使用函数 IRR。 | XIRR(values,dates,guess) |
XNPV | 返回一组现金流的净现值,这些现金流不一定定期发生。若要计算一组定期现金流的净现值,请使用函数 NPV。 | XNPV(rate,values,dates) |
YIELD | 返回定期付息有价证券的收益率,函数 YIELD 用于计算债券收益率。 | YIELD(settlement,maturity,rate, pr,redemption,frequency,basis) |
YIELDDISC | 返回折价发行的有价证券的年收益率。 | YIELDDISC(settlement,maturity, pr,redemption,basis) |
YIELDMAT | 返回到期付息的有价证券的年收益率。 | YIELDMAT(settlement,maturity, issue,rate,pr,basis) |