NPer 함수
업데이트: 2007년 11월
일정 기간의 고정 지불액과 고정 이자율을 기준으로 연금의 기간 수를 Double 형식으로 반환합니다.
Function NPer( _
ByVal Rate As Double, _
ByVal Pmt As Double, _
ByVal PV As Double, _
Optional ByVal FV As Double = 0, _
Optional ByVal Due As DueDate = DueDate.EndOfPeriod _
) As Double
매개 변수
Rate
필수적 요소입. 기간당 이자율을 지정하는 Double 형식입니다. 예를 들어, 연리(APR) 10%로 자동차 대출을 받아 매달 지불한다면 기간당 이자율은 0.1/12 또는 0.0083입니다.Pmt
필수적 요소. 기간당 지불액을 지정하는 Double 형식입니다. 지급에는 일반적으로 연금을 받는 기간 동안 변경되지 않는 원금과 이자가 포함됩니다.PV
필수적 요소. 현재 값, 금일 값, 미래 지불 또는 수령액을 지정하는 Double 형식입니다. 예를 들어, 차를 사려고 돈을 빌린 경우 대출 원리 합계는 돈을 빌려 준 사람에게 앞으로 매달 지불할 차 대금의 현재 값입니다.FV
선택적 요소. 최종 지불 후 앞으로 지불할 미래 값 또는 현금 잔액을 지정하는 Double 형식입니다. 예를 들어, 최종 지불 후의 대출 값은 $0이므로 대출의 미래 값은 $0입니다. 그러나 자녀 교육을 위해 18년간 $50,000 를 저축하는 경우 미래 값은 $50,000입니다. 생략하면 0로 간주됩니다.Due
선택적 요소. 지불 만기일을 지정하는 DueDate 열거형 형식의 개체입니다. 지불일로 처리되는 날짜가 지불 기간의 끝이면 이 인수는 DueDate.EndOfPeriod이고, 지불 기간의 처음이면 DueDate.BegOfPeriod여야 합니다. 생략하면 DueDate.EndOfPeriod로 간주됩니다.
예외
예외 형식 |
오류 번호 |
조건 |
---|---|---|
Rate <= -1. |
||
Rate와 Pmt가 모두 0입니다. |
비구조적 오류 처리를 사용하는 Visual Basic 6.0 응용 프로그램을 업그레이드하는 경우에는 "오류 번호" 열을 참조하십시오. 오류 번호를 Number 속성(Err 개체)과 비교할 수 있습니다. 그러나 가능하면 이러한 오류 제어 방법을 Visual Basic의 구조적 예외 처리 개요에 설명된 방식으로 바꾸는 것이 좋습니다.
설명
연금은 일정 기간 동안 고정된 현금을 지불하는 것입니다. 연금은 대출(예: 집 저당) 또는 투자(예: 매달 저축 계획)가 될 수 있습니다.
모든 인수에서 지불된 현금(예: 저축 예금)은 음수로 표시되고 받은 현금(예: 배당 수표)은 양수로 표시됩니다.
예제
다음 예제에서는 NPer 함수를 사용하여 대출금의 총 상환 기간(값이 PVal에 포함된 기간)을 반환합니다. 이 때 기간당 이자율(APR / 12), 지불액(Payment), 대출금의 장래 가치(FVal) 및 지불일로 처리되는 날짜가 지불 기간의 시작과 끝 중 언제인지를 나타내는 숫자(PayType)를 함수에 지정합니다.
Sub TestNPer()
Dim TotPmts As Double
Dim PVal, APR, Payment As Double
Dim PayType As DueDate
Dim Response As MsgBoxResult
' Usually 0 for a loan.
Dim Fval As Double = 0
PVal = CDbl(InputBox("How much do you want to borrow?"))
APR = CDbl(InputBox("What is the annual percentage rate of your loan?"))
' Usually 0 for a loan.
If APR > 1 Then APR = APR / 100
Payment = CDbl(InputBox("How much do you want to pay each month?"))
Response = MsgBox("Do you make payments at the end of month?", MsgBoxStyle.YesNo)
If Response = MsgBoxResult.No Then
PayType = DueDate.BegOfPeriod
Else
PayType = DueDate.EndOfPeriod
End If
TotPmts = NPer(APR / 12, -Payment, PVal, FVal, PayType)
If Int(TotPmts) <> TotPmts Then TotPmts = Int(TotPmts) + 1
MsgBox("It will take you " & TotPmts & " months to pay off your loan.")
End Sub
요구 사항
네임스페이스:Microsoft.VisualBasic
**모듈:**Financial
**어셈블리:**Visual Basic 런타임 라이브러리(Microsoft.VisualBasic.dll)