Excel中计算债券日期天数需用COUPDAYBS(上一付息日至结算日)、COUPDAYS(整个付息周期天数)、COUPDAYSNC(结算日至下一付息日)三个函数,参数均为settlement、maturity、frequency、basis,须确保日期合法且符合逻辑关系。

如果您需要在 Excel 中计算债券相关日期的天数,例如从上一个付息日到结算日之间的天数、整个付息周期的天数,或从结算日到下一个付息日之间的天数,则需使用 COUPDAYBS、COUPDAYS 和 COUPDAYSNC 这三个财务函数。以下是具体操作方法:
一、COUPDAYBS 函数:计算上一付息日至结算日的天数
COUPDAYBS 返回的是从上一个付息日(含)到结算日(不含)之间的实际天数,用于确定应计利息的基础天数。该函数依赖于债券的付息频率和日计数基准,结果受 settlement、maturity、frequency 和 basis 参数共同影响。
1、在目标单元格中输入公式:=COUPDAYBS(settlement,maturity,frequency,basis)。
2、其中 settlement 为债券结算日期,需用 DATE 函数或有效日期序列号表示,例如 DATE(2024,6,15)。
3、maturity 为债券到期日,同样须为合法日期值;frequency 表示每年付息次数,可取 1(年付)、2(半年付)或 4(季付);basis 指定日计数方式,常用值为 0(美国(NASD)30/360)、1(实际/实际)或 3(实际/365)。
4、确保所有日期参数均大于 1900 年 1 月 1 日且 settlement 小于 maturity,否则返回 #NUM! 错误。
二、COUPDAYS 函数:计算当前付息周期的总天数
COUPDAYS 返回包含结算日在内所属付息期间的总天数,即从上一付息日(含)到下一付息日(不含)之间的日历天数。该值用于构建应计利息比例和现金流时间轴。
1、在单元格中输入公式:=COUPDAYS(settlement,maturity,frequency,basis)。
2、settlement、maturity、frequency 和 basis 的含义与 COUPDAYBS 完全一致,参数顺序不可调换。
3、若 settlement 恰好等于某一付息日,函数将返回该付息日到下一付息日之间的天数,而非零。
4、当 frequency 为 2 且 basis 为 1(实际/实际)时,Excel 会根据实际日历逐月累加天数,包括闰年二月的处理。
三、COUPDAYSNC 函数:计算结算日至下一付息日的天数
COUPDAYSNC 返回从结算日(含)到下一个付息日(不含)之间的天数,常用于判断剩余计息时间或安排资金调度。该函数不返回负值,且始终以结算日为起点向未来推算。
1、在目标单元格中输入公式:=COUPDAYSNC(settlement,maturity,frequency,basis)。
2、所有参数定义与前述两个函数保持完全一致,但逻辑起点不同——此函数不追溯上一付息日,仅向前计算。
3、若 settlement 等于或晚于 maturity,函数将返回 #NUM! 错误,因为已无后续付息日可计算。
4、当 settlement 正好是某次付息日时,COUPDAYSNC 返回值为 0,表示当天即为付息日,无剩余天数。










