Microsoft small business knowledge base

Article ID: 110854 - Last Review: January 18, 2007 - Revision: 3.2

This article was previously published under Q110854
For a Microsoft Excel 98 version of this article, see 192376  ( ) .

On This Page


The RATE() function in Microsoft Excel returns the periodic interest rate necessary for an investment to grow to a specific value over a specified number of compounding periods. However, the RATE() function assumes a known periodic payment amount. If the payment amount per period is not known, you can still use the RATE() function, but you must modify it slightly.

You must use a manually entered formula to determine the annualized interest rate for an investment with more than one compounding period per year. You can also use a custom function to make this calculation easier.


To use the RATE() function in Microsoft Excel when the payment per period is not known, you must enter the number of compounding periods, the present value as a negative number, and the future value.

For example, an initial investment of $1,000, that has grown to $2,000 when compounded quarterly over six years would return 2.93% per quarter when entered as follows:
To determine the annualized interest rate for an investment, use the following formula
where FV is the future value of an investment, PV is the initial investment, N is the total number of compounding periods, and M is the number of compounding periods per year.

The following formula, when used with the numbers from the previous example, will return 12.2462% per year:

Creating a Visual Basic Function

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. To create this function in Microsoft Visual Basic for Applications, follow these steps:
  1. Start Microsoft Excel and press ALT+F11 to start the Visual Basic Editor.
  2. On the Insert menu, click Module.
  3. In the module sheet, type the following function:
    Function Yearly_Rate(FV, PV, N, M) As Double     'Defines variables.
        Yearly_Rate = ((FV / PV) ^ (1 / N)^M) - 1    'Performs computation.
    End Function                                     'Ends function.
  4. Press ALT+Q to return to Excel.

Using the Function

To use the custom function, follow these steps:
  1. Type the following values in a worksheet:
       A1:   20000
       A2:   10000
       A3:      72
       A4:      12
  2. In any blank cell, type the following formula:
The annual interest rate is returned as .122462 (12.2462%).


For more information about the RATE worksheet function, click Microsoft Excel Help on the Help menu, type rate worksheet function in the Office Assistant or the Answer Wizard, and then click Search to view the topic.

  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
kbinfo kbmigrate kbualink97 KB110854
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support