The DURATION function is categorized under Excel Financial functions. It helps to calculate the Macauley Duration. The function calculates the duration of a security that pays interest on a periodic basis with a par value of $100. DURATION is commonly used by Portfolio Managers who use the immunization strategy. Apart from it, the function is also useful in financial modeling, particularly in predicting future cash flows of investments.
Syntax: =DURATION(settlement, maturity, coupon, yield, frequency, [basis])
The DURATION function syntax has the following arguments:
 Settlement Required. The security’s settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.
 Maturity Required. The security’s maturity date. The maturity date is the date when the security expires.
 Coupon Required. The security’s annual coupon rate.
 Yld Required. The security’s annual yield.
 Frequency Required. The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.
 Basis Optional. The type of day count basis to use.
Basis  Day count basis 

0 or omitted  US (NASD) 30/360 
1  Actual/actual 
2  Actual/360 
3  Actual/365 
4  European 30/360 
Example: Let’s look at some Excel DURATION function examples and explore how to use the DURATION function as a worksheet function in Microsoft Excel:
Syntax: =DURATION(B1,B2,B3,B4,B5,B6)
Result:
Based on the Excel spreadsheet above, the following DURATION examples would return:
Syntax: =DURATION(B1,B2,B3,B4,B5,B6)
Result: 10.06252832
Syntax: =DURATION(DATE(2018,5,1),DATE(2050,4,1),0.09,0.1,2,1)
Result: 10.06252832
Syntax: =DURATION(DATE(2018,5,1),DATE(2050,4,1),9%,10%,B5,B6)
Result: 10.06252832
Note:
 Settlement, maturity, frequency, and basis are truncated to integers.
 If settlement or maturity is not a valid date, DURATION returns the #VALUE! error value.
 If coupon < 0 or if yld < 0, DURATION returns the #NUM! error value.
 If frequency is any number other than 1, 2, or 4, DURATION returns the #NUM! error value.
 If basis < 0 or if basis > 4, DURATION returns the #NUM! error value.

If settlement ≥ maturity, DURATION returns the #NUM! error value.