Функция Rate

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Возвращает значение типа 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."