Excel 应用MIRR函数计算正和负现金流以不同利率进行计算的修正收益率

MIRR函数用于计算某一连续期间内现金流的修正收益率。函数MIRR同时考虑了投资的成本和现金再投资的收益率。MIRR函数的语法如下。


MIRR(values,finance_rate,reinvest_rate)

其中参数values为一个数组或对包含数字的单元格的引用。这些数值代表着各期的一系列支出(负值)及收入(正值)。参数values中必须至少包含一个正值和一个负值,才能计算修正后的内部收益率,否则函数MIRR会返回错误值“#DIV/0!”。如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略,但包含零值的单元格将计算在内。finance_rate为现金流中使用的资金支付的利率。reinvest_rate为将现金流再投资的收益率。

典型案例

已知某公司某项资产的原值、前五年每年的收益,计算五年后投资的修正收益率、三年后的修正收益率以及基于14%的再投资收益率的五年修正收益率。基础数据如图17-47所示。

步骤1:打开例子工作簿“MIRR.xlsx”。

步骤2:在单元格A11中输入公式“=MIRR(A2:A7,A8,A9)”,用于计算五年后投资的修正收益率。

步骤3:在单元格A12中输入公式“=MIRR(A2:A5,A8,A9)”,用于计算三年后的修正收益率。

步骤4:在单元格A13中输入公式“=MIRR(A2:A7,A8,14%)”,用于计算基于14%的再投资收益率的五年修正收益率。计算结果如图17-48所示。

图17-47 基础数据

图17-48 计算结果

使用指南

函数MIRR根据输入值的次序来解释现金流的次序。所以,务必按照实际的顺序输入支出和收入数额,并使用正确的正负号(现金流入用正值,现金流出用负值)。如果现金流的次数为n,finance_rate为frate而reinvest_rate为rrate,则函数MIRR的计算公式为:

Excel 应用IRR函数计算一系列现金流的内部收益率

IRR函数用于计算由数值代表的一组现金流的内部收益率。这些现金流不必为均衡的,但作为年金,它们必须按固定的间隔产生,如按月或按年。内部收益率为投资的回收利率,其中包含定期支付(负值)和定期收入(正值)。IRR函数的语法如下。


IRR(values,guess)

其中参数values为数组或单元格的引用,包含用来计算返回的内部收益率的数字。guess为对函数IRR计算结果的估计值。

典型案例

已知某公司某项业务的初期成本费用、前五年的净收入,计算投资若干年后的内部收益率。基础数据如图17-45所示。

步骤1:打开例子工作簿“IRR.xlsx”。

步骤2:在单元格A9中输入公式“=IRR(A2:A6)”,用于计算投资四年后的内部收益率。

步骤3:在单元格A10中输入公式“=IRR(A2:A7)”,用于计算五年后的内部收益率。

步骤4:在单元格A11中输入公式“=IRR(A2:A4,-10%)”,用于计算两年后的内部收益率(使用了一个估计值)。计算结果如图17-46所示。

图17-45 基础数据

图17-46 计算结果

使用指南

1)values必须包含至少一个正值和一个负值,以计算返回的内部收益率。函数IRR根据数值的顺序来解释现金流的顺序,故应确定按需要的顺序输入了支付和收入的数值。如果数组或引用包含文本、逻辑值或空白单元格,这些数值将被忽略。Excel使用迭代法计算函数IRR。从guess开始,函数IRR进行循环计算,直至结果的精度达到0.00001%。如果函数IRR经过20次迭代,仍未找到结果,则返回错误值“#NUM!”。

2)在大多数情况下,并不需要为函数IRR的计算提供guess值。如果省略guess,假设它为0.1(10%)。如果函数IRR返回错误值“#NUM!”,或结果没有靠近期望值,可用另一个guess值再试一次。

Excel 应用COUPPCD函数计算结算日之前的上一付息日

COUPPCD函数用于计算结算日之前的上一付息日。COUPPCD函数的语法如下。


COUPPCD(settlement,maturity,frequency,basis)

其中参数settlement为证券的结算日。结算日是在发行日之后,证券卖给购买者的日期。maturity为有价证券的到期日。到期日是有价证券有效期截止时的日期。frequency为年付息次数。如果按年支付,frequency=1;按半年期支付,frequency=2;按季支付,frequency=4。basis为日计数基准类型。

典型案例

已知某债券的结算日、到期日、支付方式等信息,计算在这些条件下的债券成交日之前的上一付息日。基础数据如图17-43所示。

步骤1:打开例子工作簿“COUPPCD.xlsx”。

步骤2:在单元格A7中输入公式“=COUPPCD(A2,A3,A4,A5)”,用于计算对于具有上述条件的债券结算日之前的付息日。计算结果如图17-44所示。

图17-43 基础数据

图17-44 计算结果

使用指南

所有参数若非整数将被截尾取整。如果settlement或maturity不是合法日期,则COUPPCD将返回错误值“#VALUE!”;如果frequency不为1、2或4,则COUPPCD将返回错误值“#NUM!”;如果basis<0或者basis>4,则COUPPCD返回错误值“#NUM!”;如果settlement≥maturity,则COUPPCD返回错误值“#NUM!”。

Excel 应用COUPNCD函数计算结算日之后的下一个付息日

COUPNCD函数用于计算一个表示在结算日之后下一个付息日的数字。COUPNCD函数的语法如下。


COUPNCD(settlement,maturity,frequency,basis)

其中参数settlement为证券的结算日。结算日是在发行日之后,证券卖给购买者的日期。maturity为有价证券的到期日。到期日是有价证券有效期截止时的日期。frequency为年付息次数。如果按年支付,frequency=1;按半年期支付,frequency=2;按季支付,frequency=4。basis为日计数基准类型。

典型案例

已知某债券的结算日、到期日、支付方式等信息,计算在这些条件下的债券为结算日之后的下一个付息日。基础数据如图17-41所示。

步骤1:打开例子工作簿“COUPNCD.xlsx”。

步骤2:在单元格A7中输入公式“=COUPNCD(A2,A3,A4,A5)”,用于计算对于具有上述条件的债券为结算日之后的下一个付息日。计算结果如图17-42所示。

图17-41 基础数据

图17-42 计算结果

使用指南

所有参数若非整数将被截尾取整。如果settlement或maturity不是合法日期,则COUPNCD将返回错误值“#VALUE!”;如果frequency不为1、2或4,则COUPNCD将返回错误值“#NUM!”;如果basis<0或者basis>4,则COUPNCD返回错误值“#NUM!”;如果settlement≥maturity,则COUPNCD返回错误值“#NUM!”。

Excel 应用COUPDAYSNC函数计算从结算日到下一付息日之间的天数

COUPDAYSNC函数用于计算从结算日到下一付息日之间的天数。COUPDAYSNC函数的语法如下。


COUPDAYSNC(settlement,maturity,frequency,basis)

其中参数settlement为证券的结算日。结算日是在发行日之后,证券卖给购买者的日期。maturity为有价证券的到期日。到期日是有价证券有效期截止时的日期。frequency为年付息次数。如果按年支付,frequency=1;按半年期支付,frequency=2;按季支付,frequency=4。basis为日计数基准类型。

典型案例

已知某债券的结算日、到期日、支付方式等信息,计算在这些条件下某债券从结算日到下一个付息日的天数。基础数据如图17-39所示。

步骤1:打开例子工作簿“COUPDAYSNC.xlsx”。

步骤2:在单元格A7中输入公式“=COUPDAYSNC(A2,A3,A4,A5)”,用于计算在上述条件下某债券从结算日到下一个付息日的天数。计算结果如图17-40所示。

图17-39 基础数据

图17-40 计算结果

使用指南

所有参数若非整数将被截尾取整。如果settlement或maturity不是合法日期,函数COUPDAYSNC返回错误值“#VALUE!”;如果frequency不是数字1、2或4,函数COUPDAYSNC返回错误值“#NUM!”;如果basis<0或basis>4,函数COUPDAYSNC返回错误值“#NUM!”;如果settlement≥maturity,函数COUPDAYSNC返回错误值“#NUM!”。

Excle 应用COUPDAYS函数计算包含结算日的付息期天数

COUPDAYS函数用于计算结算日所在的付息期的天数。COUPDAYS函数的语法如下。


COUPDAYS(settlement,maturity,frequency,basis)

其中参数settlement为证券的结算日。结算日是在发行日之后,证券卖给购买者的日期。maturity为有价证券的到期日。到期日是有价证券有效期截止时的日期。frequency为年付息次数。如果按年支付,frequency=1;按半年期支付,frequency=2;按季支付,frequency=4。basis为日计数基准类型。

典型案例

已知某债券的结算日、到期日、支付方式等信息,计算在这些条件下包含结算日的债券票息期的天数。基础数据如图17-37所示。

步骤1:打开例子工作簿“COUPDAYS.xlsx”。

步骤2:在单元格A7中输入公式“=COUPDAYS(A2,A3,A4,A5)”,用于计算在上述条件下包含结算日的债券票息期的天数。计算结果如图17-38所示。

图17-37 基础数据

图17-38 计算结果

使用指南

所有参数若非整数将被截尾取整。如果settlement或maturity不是合法日期,函数COUPDAYS返回错误值“#VALUE!”;如果frequency不是数字1、2或4,函数COUPDAYS返回错误值“#NUM!”;如果basis<0或basis>4,函数COUPDAYS返回错误值“#NUM!”;如果settlement≥maturity,函数COUPDAYS返回错误值“#NUM!”。

Excel 应用COUPDAYBS函数计算从付息期开始到结算日之间的天数

COUPDAYBS函数用于计算当前付息期内截止到结算日的天数。COUPDAYBS函数的语法如下。


COUPDAYBS(settlement,maturity,frequency,basis)

其中参数settlement为证券的结算日。结算日是在发行日之后,证券卖给购买者的日期。maturity为有价证券的到期日。到期日是有价证券有效期截止时的日期。frequency为年付息次数。如果按年支付,frequency=1;按半年期支付,frequency=2;按季支付,frequency=4。basis为日计数基准类型。

典型案例

已知某债券的结算日、到期日、支付方式等信息,计算在这些条件下从债券付息期开始到结算日的天数。基础数据如图17-35所示。

步骤1:打开例子工作簿“COUPDAYBS.xlsx”。

步骤2:在单元格A7中输入公式“=COUPDAYBS(A2,A3,A4,A5)”,用于计算从债券付息期开始到结算日的天数。计算结果如图17-36所示。

图17-35 基础数据

图17-36 计算结果

使用指南

所有参数将被截尾取整。如果settlement或maturity不是合法日期,函数COUPDAYBS返回错误值“#VALUE!”;如果frequency不是数字1、2或4,函数COUPDAYBS返回错误值“#NUM!”;如果basis<0或basis>4,函数COUPDAYBS返回错误值“#NUM!”;如果settlement≥maturity,函数COUPDAYBS返回错误值“#NUM!”。

Excel 应用VDB函数使用余额递减法计算给定期间或部分期间内的折旧值

VDB函数用于使用双倍余额递减法或其他指定的方法,计算指定的任何期间内(包括部分期间)的资产折旧值。函数VDB代表可变余额递减法。VDB函数的语法如下。


VDB(cost,salvage,life,start_period,end_period,factor,no_switch)

其中参数cost为资产原值,salvage为资产在折旧期末的价值(有时也称为资产残值,此值可以是0),life为折旧期限(有时也称作资产的使用寿命)。start_period为进行折旧计算的起始期间,start_period必须与life的单位相同。end_period为进行折旧计算的截止期间,end_period必须与life的单位相同。factor为余额递减速率(折旧因子),如果factor被省略,则假设为2(双倍余额递减法)。如果不想使用双倍余额递减法,可改变参数factor的值。no_switch为一逻辑值,指定当折旧值大于余额递减计算值时,是否转用直线折旧法。

注意:如果no_switch为TRUE,即使折旧值大于余额递减计算值,Excel也不转用直线折旧法;如果no_switch为FALSE或被忽略,且折旧值大于余额递减计算值时,Excel将转用线性折旧法。

除no_switch外的所有参数必须为正数。

【典型案例】已知某机械厂一大型设备的资产原值、资产残值和使用寿命,计算指定时间内的折旧值。基础数据如图17-33所示。

步骤1:打开例子工作簿“VDB.xlsx”。

步骤2:在单元格A6中输入公式“=VDB(A2,A3,A4*365,0,1)”,用于计算第一天的折旧值。Excel自动假定折旧因子为2。

步骤3:在单元格A7中输入公式“=VDB(A2,A3,A4*12,0,1)”,用于计算第一个月的折旧值。

步骤4:在单元格A8中输入公式“=VDB(A2,A3,A4,0,1)”,用于计算第一年的折旧值。

步骤5:在单元格A9中输入公式“=VDB(A2,A3,A4*12,6,18)”,用于计算在第六个月与第十八个月之间的折旧值。

步骤6:在单元格A10中输入公式“=VDB(A2,A3,A4*12,6,18,1.5)”,用于计算在第六个月与第十八个月之间的折旧值。

步骤7:在单元格A11中输入公式“=VDB(A2,A3,A4,0,0.875,1.5)”,用于计算拥有资产的第一个财政年的折旧值。资产在财政年的第一个季度中间购买。计算结果如图17-34所示。

图17-33 基础数据

图17-34 计算结果

Excel 应用SYD函数计算某项固定资产按年限总和折旧法计算的每期折旧金额

SYD函数用于计算某项资产按年限总和折旧法计算的指定期间的折旧值。SYD函数的语法如下。


SYD(cost,salvage,life,per)

其中参数cost为资产原值,salvage为资产在折旧期末的价值(有时也称为资产残值),life为折旧期限(有时也称作资产的使用寿命)。per为期间,其单位与life相同。

【典型案例】已知某机械厂一大型设备的资产原值、资产残值和使用寿命,计算指定时间内的折旧值。基础数据如图17-31所示。

步骤1:打开例子工作簿“SYD.xlsx”。

步骤2:在单元格A6中输入公式“=SYD(A2,A3,A4,1)”,用于计算第一年的折旧值。

步骤3:在单元格A7中输入公式“=SYD(A2,A3,A4,10)”,用于计算第十年的折旧值。计算结果如图17-32所示。

图17-31 基础数据

图17-32 计算结果

【使用指南】函数SYD计算公式如下:

Excel 应用SLN函数计算固定资产的每期线性折旧费

SLN函数用于计算某项资产在一个期间中的线性折旧值。SLN函数的语法如下。


SLN(cost,salvage,life)

其中参数cost为资产原值,salvage为资产在折旧期末的价值(有时也称为资产残值),life为折旧期限(有时也称作资产的使用寿命)。

【典型案例】已知某机械厂一大型设备的资产原值、资产残值和使用寿命,计算该设备每年的折旧值。基础数据如图17-29所示。

图17-29 基础数据

步骤1:打开例子工作簿“SLN.xlsx”。

步骤2:在单元格A6中输入公式“=SLN(A2,A3,A4)”,用于计算该设备每年的折旧值。计算结果如图17-30所示。

图17-30 计算结果