Возвращает значение типа Double, представляющее собой ставку по аннуитету за указанный период.
Синтаксис
Rate( кпер , плт, пс [, бс ] [, тип ] [, гипотеза ] )
Функция Rate имеет следующие аргументы:
Аргумент |
Описание |
кпер |
Обязательный аргумент. Значение Double , указывающее общее количество периодов оплаты в аннуитетном платеже. Например, при ежемесячных выплатах по четырехгодичному кредиту на машину число периодов выплат равно 4*12 (или 48). |
плт |
Обязательный аргумент. Значение double, обозначающее платеж, который должен выплачиваться в каждый период. Обычно платежи включают основную сумму и проценты, которые не изменяются на протяжении всего периода выплат. |
пс |
Обязательный аргумент. Значение Double, которое указывает текущую стоимость ряда будущих платежей или поступлений. Например, при получении кредита на покупку автомобиля сумма кредита для кредитора равноценна будущим ежемесячным платежам по кредиту. |
бс |
Необязательный аргумент. Значение Variant, обозначающее будущую стоимость (баланс), которой вы хотите достичь после последней выплаты. Например, будущая стоимость для займа равна 0 р., поскольку это значение останется после последней выплаты. Но если вы хотите накопить за 18 лет 50 000 $ на образование ребенка, будущая стоимость равна 50 000 $. Если этот аргумент не задан, используется значение 0. |
тип |
Необязательный аргумент. Значение Variant, определяющее, когда должна производиться выплата. Укажите значение 0, если платежи выплачиваются в конце периода оплаты, или 1, если они выплачиваются в начале периода. Если этот аргумент не задан, используется значение 0. |
гипотеза |
Необязательный аргумент. Значение Variant, которое указывает значение, которое предположительно будет возвращено функцией Rate. Если аргумент гипотеза опущен, используется значение 0,1 (10 %). |
Замечания
Выплатами называется ряд фиксированных платежей наличными, которые выполняются в определенный период времени. Это может быть заём (например, ипотека) или инвестиция (например, сберегательный вклад с ежемесячным пополнением).
Все аргументы, которым соответствуют выплачиваемые денежные средства (например, сберегательные вклады), представляются отрицательными числами, а получаемые (например, дивиденды) — положительными.
Функция Rate вычисляется методом итераций. Начиная со значения гипотеза, функция Rate циклически повторяет вычисления, пока не будет достигнут результат с точностью 0,00001 процента. Если функции Rate не удалось получить такой результат после 20 попыток, вычисления прекращаются. Если с помощью функции Rate вычислить результат не удалось и для аргумента гипотеза используется значение 10 %, попробуйте изменить это значение.
Пример запроса
Expression |
Результаты |
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."