출처 : http://blog.naver.com/chchcom?Redirect=Log&logNo=3156879
◆ Oct 함수
숫자의 8진수 값을 Variant(String)값을 반환합니다.
▶ 구문 : Oct(number)
number 인수로는 모든 유효한 숫자 식 또는 문자열 식이 사용됩니다.
▶ 참고 : number 가 정수가 아니면 계산되기 전 가까운 정수로 반올림됩니다.
Number
Oct 반환값
적절한 범위 내의 숫자 앞에 &O를 붙이면 직접 8진수를
지정할 수 있습니다.
예를 들어 &O10 은 10진수로 '8'의 8진수 표기법입니다.
Null
Empty
그 이외의 수
Null
영(0)
최대 11자리의 8진수
Oct 함수 예제 다음은 Oct 함수를 사용하여 지정된 숫자에 대한 8진수 값을 구하는 예제입니다.
Dim MyOct
MyOct = Oct(4) ' 4를 반환합니다.
MyOct = Oct(8) ' 10을 반환합니다.
MyOct = Oct(459) ' 713을 반환합니다.
◆ Partition 함수
계산된 범위 내의 어느 곳에서 숫자가 발생했는지를 알려주는 Variant(String)를 반환합니다.
▶ 구문 : Partition(number, start, stop, interval)
Partition 함수의 구문은 아래와 같은 명명된 인수로 구성됩니다.
구성 요소
설명
number
start
stop
interval
필수. 지정한 범위 안에서 평가하고자 하는 횟수(정수).
필수. 지정한 전체 범위에 대하여 처리를 시작하고자 하는 숫자(정수). 0보다 커야 함.
필수. 지정한 전체 범위에 대하여 처리를 종료하고자 하는 숫자(정수). start 값보다 크거나 같아야 함.
필수. 지정한 범위 안에서 start값과 stop값 사이에 반복되는 주기를 나타내는 숫자(정수). 이 숫자는 1이상이어야 함
▶ 참고 : Partition 함수는 범위 값을 표시하는 Variant(String)를 넘겨주고 되돌려주는 특정한 범위 값인 number를 나타냅니다. Partition 함수
는 질의문에서 가장 유용하게 사용할 수 있습니다. 주어진 범위 안의 주문량을 구하기 위하여 선택 질의문을 작성할 수도 있습니
다. 예를 들면, 1과 1000 또는 1001과 2000 사이의 주문량 등입니다.
다음은 세 개의 start와 stop, 그리고 interval을 이용하여 어떻게 범위가 주어졌는지를 나타내는 예입니다. 시작 범위 열과 종료 범
위 열의 값은 어느 Partition을 반환하는지를 보여 주고 있습니다. 범위는 lowervalue:uppervalue로 표시하고, 최저값은 최대값과 콜
론(:)으로 구분합니다.
start
stop
interval
시작 전
시작 범위
종료 범위
종료 후
0
99
5
" : -1"
" 0: 4"
" 95: 99"
" 100: "
20
199
10
" : 19"
" 20: 29"
" 190: 199"
" 200: "
100
1010
20
" : 99"
" 100: 119"
" 1000: 1010"
" 1011: "
위와 같이, 세 번째 행은 interval로 start과 stop값을 나누었을 때 정수값이 나오지 않는 경우의 결과값을 보여주고 있습니다. 종료
범위값은 interval이 20일 경우에도 stop값까지 연장됩니다.
필요시, Partition 문은 충분한 필요 공간의 범위값을 반환하기 때문에 stop값에 문자가 있듯이 콜론의 좌우에는 같은 수의 문자가
놓이게 됩니다. 만일 사용자가 Partition 문을 다른 숫자와 함께 사용하는 경우, 관련된 정렬 작업 동안 결과 텍스트가 적절하게
처리됩니다.
interval이 1인 경우, 범위값은 start과 stop 인수에 관계없이 number:number가 됩니다. 예를 들면 interval이 1인 경우, 숫자값은 100
이고 stop값은 1000이며, Partition 문은 " 100: 100"을 반환하게 됩니다.
모든 값이 Null이면, Partition은 Null을 반환합니다.
◆ Pmt 함수
정기 고정 지불액과 고정 이율을 기준으로 연금에 대한 지불액을 지정하는 Double을 반환합니다.
▶ 구문 : Pmt(rate, nper, pv[, fv[, type]])
Pmt 함수는 다음과 같이 명명된 인수로 구성되어 있습니다.
구성 요소
설명
rate
nper
pv
fv
type
필수. 일정 기간 당 이율을 지정하는 Double 입니다. 예를 들면 연 이율(APR) 10%로 자동차 대부를 받고 매월 지불
하려면 기간 당 비율은 0.1/12 또는 0.0083이 됩니다.
필수. 연금의 총 지불 기간 수를 지정하는 Integer 입니다. 예를 들면 4년 동안의 자동차 대부에 대해 매월 지불하려
면 지불 기간은 총 4 * 12 (또는 48)가 됩니다.
필수. 장래에 지불할 지불액이 현재 가치가 있는 현재 값 (또는 총액)을 지정하는 Double 입니다. 예를 들면 돈을
빌려서 차를 살 때 대출액은 대금업자에게 매달 지불할 현재의 값이 됩니다.
선택. 마지막으로 지불한 후에 원하는 장래의 값이나 자금 잔액을 지정하는 Variant 입니다. 예를 들면 마지막으로
지불한 후의 가치가 0원이므로 장래의 대출금은 0원이 됩니다. 그러나 자녀들의 교육 기간 18년에 걸쳐 37,500,000
원을 저축하고 싶다면 장래의 값은 37,500,000원이 됩니다. 생략하면 0으로 간주합니다.
선택. 지불 만기일을 지정하는 Variant 입니다. 지불 기간이 끝날 때 지불액을 지불하려면 0, 기간이 시작될 때 지불
하려면 1을 사용합니다. 생략하면 0으로 간주합니다.
▶ 참고 : 연금은 일정 기간에 걸쳐 고정된 금액을 지불하는 것입니다. 연금은 대부(주택 저당과 같이)나 투자(월별 저축 계획과 같
이)가 될 수 있습니다.
rate와 nper 인수는 같은 단위로 표시되는 지불 기간을 사용하여 계산되어야 합니다. 예를 들면 rate를 달로 계산하면 nper도 달로
계산해야 합니다.
모든 인수에 대해 지불하는 금액(예: 저축 예금)은 음수로, 수령하는 금액(예: 배당금)은 양수로 표시됩니다.
Pmt 함수 예제
다음은 결정된 분기마다 융자액에 대한 월별 불입금을 반환하기 위해 Pmt 함수를 사용하는 예제입니다.
분기당 이자율(APR / 12), 총 불입 회수(TotPmts), 현 융자액 또는 융자원금(PVal), 미래 융자액(FVal), 기수불 또는 기말불 어느 쪽
에 불입이 이루어지는지 가리키는 수(PayType) 등이 주어집니다.
Dim Fmt, FVal, PVal, APR, TotPmts, PayType, Payment
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' 불입이 된 경우.
Fmt = "###,###,##0.00" ' 금액 유형을 정의합니다.
FVal = 0 ' 대개 융자금에 대해서는 0으로 주어집니다.
PVal = InputBox("얼마를 빌리겠습니까?")
APR = InputBox("대부금의 1년당 퍼센트 비율은 얼마입니까?")
If APR > 1 Then APR = APR / 100 ' 적절한 형태인지 확인합니다.
TotPmts = InputBox("매달 얼마를 지불하겠습니까?")
PayType = MsgBox("월말에 지불하겠습니까?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
Payment = Pmt(APR / 12, TotPmts, -PVal, FVal, PayType)
MsgBox "매달 지불을 합니다 " & Format(Payment, Fmt)
◆ PPmt 함수
정기 고정 지불액과 고정 이율을 기준으로 일정 기간 동안 연금의 원금 지불액을 지정하는 Double
을 반환합니다.
▶ 구문 : PPmt(rate, per, nper, pv[, fv[, type]])
PPmt 함수는 다음과 같이 명명된 인수로 구성되어 있습니다.
구성 요소
설명
rate
Per
nper
Pv
Fv
Type
필수. 일정 기간 당 이율을 지정하는 Double 입니다. 예를 들면 연 이율(APR) 10%로 자동차 대부를 받고 매월 지불
하려면 기간 당 비율은 0.1/12 또는 0.0083이 됩니다.
필수. 1에서 nper 사이의 지불 기간을 지정하는 Integer입니다.
필수. 연금의 총 지불 기간 수를 지정하는 Integer 입니다. 예를 들면 4년 동안의 자동차 대부에 대해 매월 지불하려
면 지불 기간은 총 4 * 12 (또는 48)가 됩니다.
필수. 장래의 지불액이나 수령액에 대한 현재의 값을 지정하는 Double 입니다. 예를 들면 돈을 대부받아 차를 살 때
대출액은 대금업자에게 매달 지불할 현재의 값이 됩니다.
선택. 마지막으로 지불한 후에 원하는 장래의 값이나 자금 잔액을 지정하는 Variant 입니다. 예를 들면 마지막으로
지불한 후의 가치가 $0이므로 장래의 대출금은 0원이 됩니다. 그러나 자녀들의 교육 기간 18년에 걸쳐 37,500,000원
을 저축하고 싶다면 장래의 값은 37,500,000원이 됩니다. 생략하면 0으로 간주합니다.
선택. 지불 만기일을 지정하는 Variant 입니다. 지불 기간이 끝날 때 지불액을 지불하려면 0, 기간이 시작될 때 지불
하려면 1을 사용합니다. 생략하면 0으로 간주합니다.
▶ 참고 : 연금은 일정 기간에 걸쳐 고정된 금액을 지불하는 것입니다. 연금은 대부(주택 저당과 같이)나 투자(월별 저축 계획과 같이)가 될 수 있습
니다. rate와 nper 인수 는 같은 단위로 표시되는 지불 기간을 사용하여 계산해야 합니다. 예를 들면 rate를 달로 계산하면 nper도 달로 계산해야
합니다. 모든 인수에 대해 지불하는 금액(예: 저축 예금)은 음수로, 수령하는 금액(예: 배당금)은 양수로 표시됩니다.
PPmt 함수 예제
다음은 모든 불입액이 균등해질 때 지정한 분기에 대해 얼마의 불입액이 원금이 되는가를 계산하기 위해 PPmt 함수를 사용하는
예제입니다. 분기당 이자율(APR / 12), 이자가 나오기 위한 불입 기간(Period), 총 불입 회수(TotPmts), 현 융자액 또는 융자원금
(PVal), 미래 융자액(FVal), 기수불 또는 기말불 어느 쪽에 불입이 이루어지는지 가리키는 수(PayType) 등이 주어집니다.
Dim NL, TB, Fmt, FVal, PVal, APR, TotPmts, PayType, Payment, Msg, MakeChart, Period, P, I
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' 불입이 된 경우.
NL = Chr(13) & Chr(10) ' 개행 코드를 정의합니다.
TB = Chr(9) ' 탭 코드를 정의합니다.
Fmt = "###,###,##0.00" ' 금액 서식을 정의합니다.
FVal = 0 ' 대개 융자금에 대해서는 0으로 주어집니다.
PVal = InputBox("얼마를 빌리겠습니까?")
APR = InputBox("대부금의 1년당 퍼센트 배율은 얼마입니까?")
If APR > 1 Then APR = APR / 100 ' 적절한 형태인지 확인합니다.
TotPmts = InputBox("매달 얼마를 지불하겠습니까?")
PayType = MsgBox("월말에 지불하겠습니까?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
Payment = Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "매달 지불액이 " & Format(Payment, Fmt) & ". "
Msg = Msg & "기간 당 원금과 이자율에 비해 "
Msg = Msg & "이득이 없습니다"
MakeChart = MsgBox(Msg, vbYesNo) ' 차트를 필요로 하는지 알아봅니다.
If MakeChart <> vbNo Then
If TotPmts > 12 Then MsgBox "Only first year will be shown."
Msg = "Month Payment Principal Interest" & NL
For Period = 1 To TotPmts
If Period > 12 Then Exit For ' 최초 12만 표시.
P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
P = (Int((P + .005) * 100) / 100) ' 원금 반올림.
I = Payment - P
I = (Int((I + .005) * 100) / 100) ' 이자 반올림.
Msg = Msg & Period & TB & Format(Payment, Fmt)
Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL
Next Period
MsgBox Msg ' 할부 상환액 테이블 표시.
End If
◆ PV 함수
장래에 지불할 정기 고정 지불액과 고정 이율을 기준으로 연금의 현재 가치를 지정하는 Double을 반환합니다.
▶ 구문 : PV(rate, nper, pmt[, fv[, type]])
PV 함수는 다음과 같이 명명된 인수로 구성되어 있습니다.
구성 요소
설명
rate
Nper
Pmt
Fv
Type
필수. 일정 기간 당 이율을 지정하는 Double 입니다. 예를 들면 연 이율(APR) 10%로 자동차 대부를 받고 매월 지불
하려면 기간 당 비율은 0.1/12 또는 0.0083이 됩니다.
필수. 연금의 총 지불 기간 수를 지정하는 Integer 입니다. 예를 들면 4년 동안의 자동차 대부에 대해 매월 지불하
려면 지불 기간은 총 4 * 12 (또는 48)가 됩니다.
필수. 각 기간에 지불할 지불액을 지정하는 Double 입니다. 지불액에는 대개 전체 연금 기간에 걸쳐 변경되지 않는
원금과 이자가 들어갑니다.
선택. 마지막으로 지불한 후에 원하는 장래의 값이나 자금 잔액을 지정하는 Variant 입니다. 예를 들면 마지막으로
지불한 후의 가치가 $원이므로 장래의 대출금은 0원이 됩니다. 그러나 자녀들의 교육 기간 18년에 걸쳐 37,500,000
원을 저축하고 싶다면 장래의 값은 37,500,000원이 됩니다. 생략하면 0으로 간주합니다.
선택. 지불 만기일을 지정하는 Variant. 지불 기간이 끝날 때 지불액을 지불하려면 0, 기간이 시작될 때 지불하려면
1을 사용합니다. 생략하면 0으로 간주합니다.
▶ 참고 : 연금은 일정 기간에 걸쳐 고정된 금액을 지불하는 것입니다. 연금은 대부(주택 저당과 같이)나 투자(월별 저축 계획과 같
이)가 될 수 있습니다.
rate와 nper 인수 는 같은 단위로 표시되는 지불 기간을 사용하여 계산되어야 합니다. 예를 들면 rate를 달로 계산하면 nper도 달로
계산해야 합니다.
모든 인수에 대해 지불하는 금액(예: 저축 예금)은 음수로, 수령하는 금액(예: 배당금)은 양수로 표시됩니다.
PV 함수 예제
다음 예제에서 PV 함수는 향후 20년동안 한 해에 3,750,000씩 제공될 연금 750,000,000원의 현재 금액을 반환합니다. 예상 연이율
(APR), 총 불입 회수(TotPmts), 각 불입액(YrIncome), 미래 총 투자액(FVal), 기수불 또는 기말불 어느 쪽에 불입이 이루어지는지
가리키는 수(PayType) 등이 주어집니다. YrIncome은 매년 연금으로부터 지급되는 자금을 나타내기 때문에 음수라는 점에 유의합니
다.
Dim Fmt, APR, TotPmts, YrIncome, FVal, PayType, PVal
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' 불입이 된 경우.
Fmt = "###,##0.00" ' 금액 서식을 정의합니다.
APR = .0825 ' 연이율.
TotPmts = 20 ' 총 불입 횟수.
YrIncome = 50000 ' 연소득.
FVal = 1000000 ' 향후 이자액.
PayType = BEGINPERIOD ' 기수불 시의 불입액.
PVal = PV(APR, TotPmts, -YrIncome, FVal, PayType)
MsgBox "현재 값입니다 " & Format(PVal, Fmt) & "."