Excel函数应用之财务函数
04月 27th, 2008
excel函数应用之财务函数
像统计函数、工程函数一样,在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(二) 求投资的净现值npv
npv函数基于一系列现金流和固定的各期贴现率,返回一项投资的净现值。投资的净现值是指未来各期支出(负值)和收入(正值)的当前值的总和。
语法形式为: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(三) 求贷款分期偿还额pmt
pmt函数基于固定利率及等额分期付款方式,返回投资或贷款的每期付款额。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(二)求本金数额cumprinc
cumprinc函数用于返回一笔货款在给定的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)
标签:excel公式, excel论坛, excel vba相关日志
This entry was posted on 星期日, 04月 27th, 2008 at 2:47 pm and is filed under excel教程. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.