Exceljet

Quick, clean, and to the point

Excel MDURATION Function

Excel MDURATION function
Summary 
The Excel MDURATION function returns the Macauley modified duration for a security with an assumed par value of $100
Purpose 
Get Macauley modified duration par value of $100
Return value 
Modified duration in years
Syntax 
=MDURATION (settlement, maturity, coupon, yld, freq, [basis])
Arguments 
  • settlement - Settlement date of the security.
  • maturity - Maturity date of the security.
  • coupon - The security's annual coupon rate.
  • yld - The security's annual yield.
  • freq - Number of coupon payments per year (annual = 1, semi-annual = 2, quarterly = 4).
  • basis - [optional] Day count basis (see below, default =0).
Usage notes 

In finance, duration is a measure of the price sensitivity to changes in interest rates for an asset that pays interest on a periodic basis, like a bond. Duration can be used by financial managers as part of a strategy to minimize the impact of interest rates changes on net worth. Modified duration is a measure of the expected change in a bond's price to a 1% change in interest rates. 

Excel's MDURATION function returns the modified 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, which can be calculated with Excel's DURATION function.

Example

In the example shown, we want to calculate the modified 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:

=DURATION(C7,C8,C5,C6,C9,C10)

and returns 7.55 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:

=MDURATION(DATE(2017,12,15),DATE(2027,9,15),0.05,0.05,2,0)

Basis

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.

Basis Day count
0 or omitted US (NASD) 30/360
1 Actual/actual
2 Actual/360
3 Actual/365
4 European 30/360

Notes

  • In Excel, dates are serial numbers
  • All dates, frequency, and basis are truncated to integers.
  • If dates are invalid (i.e. not actually dates) MDURATION returns #VALUE!
  • MDURATION returns #NUM when:
    • settlement >= maturity
    • coupon < 0 or yield < 0
    • Basis is out-of-range

Excel Formula Training

Formulas are the key to getting things done in Excel. In this accelerated training, you'll learn how to use formulas to manipulate text, work with dates and times, lookup values with VLOOKUP and INDEX & MATCH, count and sum with criteria, dynamically rank values, and create dynamic ranges. You'll also learn how to troubleshoot, trace errors, and fix problems. Instant access. See details here.