MDURATION

MDURATION(settlement, maturity, coupon, yld, frequency [,basis])

Returns the modified duration for a security that pays interest periodically.

settlementThe settlement date of the security.
maturityThe maturity date of the security.
couponThe annual coupon rate of the security.
yldThe annual yield of the security.
frequencyThe number of coupon payments per year:
1 = annual
2 = semi annual
4 = quarterly
basis(Optional) The type of [[day counting]] to use.
0 = 30/360 (default, US convention)
1 = Actual/Actual
2 = Actual/360
3 = Actual/365
4 = 30/360 (European convention)

REMARKS
* For an illustrated example refer to the [[Modified Duration]] page.
* This function assumes the par value is $100.
* This function calculates the annual modified duration for a security with regular interest payments adjusted for the frequency of interest payments.
* Duration is the weighted average of the coupon payment cash flows and is a measure of the bond's interest rate risk.
* This divides the duration by (1 + yld/frequency).
* Dates must be entered as text strings with quotation marks or as serial numbers.
* The "settlement" date is the date a buyer purchases a coupon, such as a bond.
* If "settlement" is not a valid date, then #NUM! is returned.
* If "settlement" >= "maturity", then #NUM! is returned.
* The "maturity" is the date when the security expires.
* If "maturity" is not an integer, it is truncated.
* If "maturity" is not a valid date, then #NUM! is returned.
* If "yld" < 0, then #NUM! is returned.
* If "coupon" < 0, then #NUM! is returned.
* If "frequency" is not an integer, it is truncated.
* If "frequency" is any number other than 1, 2, or 4, then #NUM! is returned.
* If "basis" is left blank, then 0 is used.
* If "basis" is not an integer, it is truncated.
* If "basis" < 0, then #NUM! is returned.
* If "basis" > 4, then #NUM! is returned.
* You can use the DURATION function to return the annual duration of a security that pays interest periodically.
* For the Microsoft documentation refer to support.microsoft.com

 A
1=MDURATION("1/1/1999", "1/1/2007", 0.08, 0.09, 2, 1) = 5.736
2=MDURATION("1/1/1999", "1/1/2007", 0.08, 0.09, 2, 2) = 5.736
3=MDURATION("1/1/1999", "1/1/2007", 0.08, 0.09, 2, 3) = $5.74
4=MDURATION("1/1/1999", "1/1/2007", 0.12, 0.15, 2) = $4.78
5=MDURATION("1/1/1999", "1/1/2007", 0.08, 0.09, 2, -1) = #NUM!
6=MDURATION("1/1/1999", "1/1/2007", 0.08, 0.09, 2, 5) = #NUM!


© 2026 Better Solutions Limited. All Rights Reserved. © 2026 Better Solutions Limited Top