Assume we need to calculate the price per $100 face value of a bond with a first coupon date of 15-Feb-2019. The bond was issued on 1-Dec-2018, matures on 15-Feb-2022, and pays a coupon rate of 5% with a required return of 6%. Payments are semi-annual, the day count basis is US 30/360, and the redemption value is $100. In the example shown, the formula in F5 is: With these inputs, the ODDFPRICE function returns 97.26, with currency number format applied.

Entering dates

In Excel, dates are serial numbers. Generally, the best way to enter valid dates is to use cell references, as shown in the example. To enter valid dates directly inside a function, you can use the DATE function. To illustrate, the formula below has all values hardcoded. The DATE function is used to supply each of the four required dates:


The basis argument controls how days are counted. The ODDFPRICE function allows 5 options (0-4) and defaults to zero, which specifies US 30/360 basis. This article on Wikipedia provides a detailed explanation of available conventions.


In Excel, dates are serial numbers.  All dates, plus frequency and basis, are truncated to integers. If dates are invalid (i.e. not actually dates) ODDFPRICE returns #VALUE! ODDFPRICE returns #NUM when: (maturity > first_coupon > settlement > issue) is not true Maturity does not follow frequency interval w.r.t last coupon date Basis is out-of-range

Dave Bruns

Hi - I’m Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.