YIELD函数用于计算定期支付利息的债券的收益率。YIELD函数的语法如下:


YIELD(settlement,maturity,rate,pr,redemption,frequency,basis)

其中,settlement参数为证券的结算日,结算日是在发行日之后,证券卖给购买者的日期。maturity参数为有价证券的到期日,到期日是有价证券有效期截止时的日期。rate参数为有价证券的年息票利率。pr参数为面值¥100的有价证券的价格。redemption参数为面值¥100的有价证券的清偿价值。frequency参数为年付息次数,如果按年支付,frequency=1;按半年期支付,frequency=2;按季支付,frequency=4。basis参数为日计数基准类型。下面通过实例详细讲解该函数的使用方法与技巧。

已知某债券的结算日、到期日、息票利率、价格、清偿价值、支付方式等信息,要求计算在这些条件下债券的收益率。打开“YIELD函数.xlsx”工作簿,切换至“Sheet1”工作表,本例的原始数据如图19-53所示。具体的计算步骤如下。

选中A10单元格,在编辑栏中输入公式“=YIELD(A2,A3,A4,A5,A6,A7,A8)”,然后按“Enter”键返回,即可计算出债券的收益率,如图19-54所示。

Excel 计算定期支付利息的债券收益:-Excel22

图19-53 原始数据

Excel 计算定期支付利息的债券收益:-Excel22

图19-54 计算债券的收益率

如果settlement参数或maturity参数不是合法日期,函数YIELD返回错误值“#VALUE!”。如果参数rate<0,函数YIELD返回错误值“#NUM!”。如果参数pr≤0或参数redemption≤0,函数YIELD返回错误值“#NUM!”。如果frequency参数不为1、2或4,函数YIELD返回错误值“#NUM!”。如果参数basis<0或参数basis>4,函数YIELD返回错误值“#NUM!”。如果参数settlement≥maturity参数,函数YIELD返回错误值“#NUM!”。

如果在清偿日之前只有一个或是没有付息期间,函数YIELD的计算公式为:

Excel 计算定期支付利息的债券收益:-Excel22

式中:

A=付息期的第1天到结算日之间的天数(应计天数)。

DSR=结算日与清偿日之间的天数。

E=付息期所包含的天数。

如果在redemption参数之前尚有多个付息期间,则通过100次迭代来计算函数YIELD。基于函数PRICE中给出的公式,并使用牛顿迭代法不断修正计算结果,直到在给定的收益率下的计算价格逼近于实际价格。