Excel’s DURATION function returns the Macauley duration for an assumed par value of $100. The Macaulay duration is the weighted average term to maturity of the cash flows from a security. The weight of each cash flow is determined by dividing the present value of the cash flow by the price. Excel also provides the MDURATION function for calculating modified duration.


In the example shown, we want to calculate the duration of a bond with an annual coupon rate of 5% and semi-annual payments. The settlement date is 15-Dec-2017, the maturity date is 15-Sep-2027, and the day count basis is US (NASD) 30/360. The formula in F5 is: and returns 7.74 years.

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, and the DATE function is used to supply each of the two required dates:


The basis argument controls how days are counted. The DISC 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, frequency, and basis are truncated to integers. If dates are invalid (i.e. not actually dates) DURATION returns #VALUE! DURATION returns #NUM when: settlement >= maturity coupon < 0 or yield < 0 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.