Возвращает значение типа Double, представляющее собой ставку по аннуитету за указанный период.
Синтаксис
Rate(nper, pmt,pv [, fv ] [, type ] [, guess ] )
Функция Rate имеет следующие аргументы:
| Аргумент | Описание |
|---|---|
| nper | — обязательный аргумент. Значение Double , указывающее общее количество периодов оплаты в аннуитетном платеже. Например, при ежемесячных выплатах по четырехгодичному кредиту на машину число периодов выплат равно 4*12 (или 48). |
| плт | Обязательный аргумент. Значение double, обозначающее платеж, который должен выплачиваться в каждый период. Обычно платежи включают основную сумму и проценты, которые не изменяются на протяжении всего периода выплат. |
| пс | Обязательный аргумент. Значение Double, которое указывает текущую стоимость ряда будущих платежей или поступлений. Например, при получении кредита на покупку автомобиля сумма кредита для кредитора равноценна будущим ежемесячным платежам по кредиту. |
| бс | Необязательный аргумент. Значение Variant, обозначающее будущую стоимость (баланс), которой вы хотите достичь после последней выплаты. Например, будущая стоимость для займа равна 0 р., поскольку это значение останется после последней выплаты. Но если вы хотите накопить за 18 лет 50 000 $ на образование ребенка, будущая стоимость равна 50 000 $. Если этот аргумент не задан, используется значение 0. |
| тип | Необязательный аргумент. Значение Variant, определяющее, когда должна производиться выплата. Укажите значение 0, если платежи выплачиваются в конце периода оплаты, или 1, если они выплачиваются в начале периода. Если этот аргумент не задан, используется значение 0. |
| гипотеза | Необязательный аргумент. Значение Variant, которое указывает значение, которое предположительно будет возвращено функцией Rate. Если этот параметр опущен, угадывание равно 0,1 (10 процентов). |
Замечания
Выплатами называется ряд фиксированных платежей наличными, которые выполняются в определенный период времени. Это может быть заём (например, ипотека) или инвестиция (например, сберегательный вклад с ежемесячным пополнением).
Все аргументы, которым соответствуют выплачиваемые денежные средства (например, сберегательные вклады), представляются отрицательными числами, а получаемые (например, дивиденды) — положительными.
Функция Rate вычисляется методом итераций. Начиная со значения угадывание, ставка циклически выполняет вычисление до тех пор, пока результат не будет точным в пределах 0,00001 процента. Если функции Rate не удалось получить такой результат после 20 попыток, вычисления прекращаются. Если ваше предположение равно 10 процентам и сбой ставки , попробуйте использовать другое значение для угадок.
Пример запроса
| Выражение | Результаты |
|---|---|
| SELECT FinancialSample.*, (Rate([TermInYears]*12,-[MonthlyRePayment],[LoanAmount],0,0.1)*12) AS InterestRate FROM FinancialSample; | Возвращает все поля из таблицы "FinancialSample" и годовую процентную ставку на основе "TermInYears", "MonthlyRePayment" и "LoanAmount" и отображает результаты в столбце Процентная ставка. |
Пример VBA
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере функция Rate используется для вычисления процентной ставки кредита с учетом общего количества платежей (TotPmts), суммы платежа по кредиту (Payment), текущей стоимости или основной суммы кредита (PVal), будущей стоимости кредита (FVal), числа, указывающего, должен ли платеж производиться в начале или конце периода выплаты (PayType), и приближение ожидаемой процентной ставки (Guess).
Dim Fmt, FVal, Guess, PVal
Dim Payment, TotPmts, PayType, APR
' When payments are made.
Const ENDPERIOD = 0, BEGINPERIOD = 1
Fmt = "##0.00" ' Define percentage format.
FVal = 0 ' Usually 0 for a loan.
Guess = .1 ' Guess of 10 percent.
PVal = InputBox("How much did you borrow?")
Payment = InputBox("What's your monthly payment?")
TotPmts = InputBox("How many monthly payments do " & _
"you have to make?")
PayType = MsgBox("Do you make payments at the end " & _
"of the month?", vbYesNo)
If PayType = vbNo Then
PayType = BEGINPERIOD
Else PayType = ENDPERIOD
End If
APR = (Rate(TotPmts, -Payment, PVal, _
FVal, PayType, Guess) * 12) * 100
MsgBox "Your interest rate is " & _
Format(CInt(APR), Fmt) & " percent."