Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

傳回 Double,根據定期、固定付款和固定利率來指定指定某期年金的本金付款。

語法

PPmt ( rate, per, nper pv [, fv ] [, type ] )

PPmt 函數語法具有下列自變數:

引數

描述

rate

必要。 Double 指定每期利率。 例如,如果您的汽車貸款的年利率 (APR) 是10%,並且每月付款,則每期的利率為 0.1/12 或 0.0083。

必要。 指定 1 到 nper 之間付款期間的整數。

nper

必要。 指定年 金總付款期數的整數。 舉例來說,如果您按月償還為期四年的汽車貸款,那麼貸款總付款期數會是 4 * 12 (或 48)。

光伏

必要。 Double 會指定一系列未來付款或收入的現值或現值。 例如,當您借錢買車時,貸款金額就是您每月汽車付款總額的現值。

fv

可省略。 用來指定您在最後一次付款後所要的終值或現金餘額的 Variant。 例如,貸款的終值是 $0,因為這是其最終付款的值。 不過,如果您想要為您的子女儲蓄 $50,000 教育基金 (18 年),則 $50,000 是終值。 如果沒有指定,會假設為 0。

type

可省略。 用來指定給付時點的 Variant。 如果給付時點為付款期限結束時,則使用 0;如果給付時點為期限開始時,則使用 1。 如果沒有指定,會假設為 0。

註解

年金是指一段時間內,一系列的固定現金付款活動。 年金可能是一筆貸款 (例如房屋貸款) 或投資 (例如每月存款計劃)。

必須使用相同單位表示的付款期間來計算 ratenper 引數。 例如,如果 rate 是使用月份計算,則 nper 也必須使用月份計算。

對於所有引數,付出的現金 (例如要儲蓄的存款金額) 是由負數表示;收入的現金 (例如股利支票) 是由正數表示。

查詢範例

Expression

結果​​

SELECT FinancialSample.*, PPMT ([AnnualRate]/12,10,[TermInYears]*12,-[LoanAmount],0,0,0) AS INTPaid FROM FinancialSample;

傳回 「FinancialSample」 資料表中的所有欄位,並根據 「AnnualRate」 和 “TermInYears” 計算 “LoanAmount”) 在此範例中以 “per” (10 支付的本金金額,並在 INTPaid 欄中顯示結果。

VBA 範例

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

此範例使用 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 ' When payments are made.
NL = Chr(13) & Chr(10) ' Define newline.
TB = Chr(9) ' Define tab.
Fmt = "###,###,##0.00" ' Define money format.
FVal = 0 ' Usually 0 for a loan.
PVal = InputBox("How much do you want to borrow?")
APR = InputBox("What is the annual percentage rate of your loan?")
If APR > 1 Then APR = APR / 100 ' Ensure proper form.
TotPmts = InputBox("How many monthly payments do you have to make?")
PayType = MsgBox("Do you make payments at the end of month?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
Payment = Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "Your monthly payment is " & Format(Payment, Fmt) & ". "
Msg = Msg & "Would you like a breakdown of your principal and "
Msg = Msg & "interest per period?"
MakeChart = MsgBox(Msg, vbYesNo) ' See if chart is desired.
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 ' Show only first 12.
P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
P = (Int((P + .005) * 100) / 100) ' Round principal.
I = Payment - P
I = (Int((I + .005) * 100) / 100) ' Round interest.
Msg = Msg & Period & TB & Format(Payment, Fmt)
Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL
Next Period
MsgBox Msg ' Display amortization table.
End If

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×