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)