Excel guide · 6 min read
How to make a loan amortization schedule in Excel
=ROUND(PMT(B2/12,B3,-B1),2), then give each row an opening balance, interest =ROUND(B8*$B$2/12,2), principal = payment minus interest, and a closing balance = opening minus principal. The next row's opening balance is the previous closing balance. Pay the remaining balance plus interest on the last row so the schedule ends at exactly 0.Sample data
Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.
| A | B | C | D | E | F | G | H | I | J | K | L | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Loan amount | 12000 | ||||||||||
| 2 | Annual rate | 0.084 | ||||||||||
| 3 | Payments | 12 | ||||||||||
| 4 | Monthly payment | 1046.08 | ||||||||||
| 5 | Extra per month | 300 | ||||||||||
| 6 | ||||||||||||
| 7 | No. | Opening | Payment | Interest | Principal | Closing | No. | Opening | Interest | Payment | ||
| 8 | 1 | 12000 | 1046.08 | 84 | 962.08 | 11037.92 | 1 | 12000 | 84 | 1046.08 | ||
| 9 | 2 | 11037.92 | 1046.08 | 77.27 | 968.81 | 10069.11 | 2 | 10737.92 | 75.17 | 1046.08 | ||
| 10 | 3 | 10069.11 | 1046.08 | 70.48 | 975.6 | 9093.51 | 3 | 9467.01 | 66.27 | 1046.08 | ||
| 11 | 4 | 9093.51 | 1046.08 | 63.65 | 982.43 | 8111.08 | 4 | 8187.2 | 57.31 | 1046.08 | ||
| 12 | 5 | 8111.08 | 1046.08 | 56.78 | 989.3 | 7121.78 | 5 | 6898.43 | 48.29 | 1046.08 | ||
| 13 | 6 | 7121.78 | 1046.08 | 49.85 | 996.23 | 6125.55 | 6 | 5600.64 | 39.2 | 1046.08 | ||
| 14 | 7 | 6125.55 | 1046.08 | 42.88 | 1003.2 | 5122.35 | 7 | 4293.76 | 30.06 | 1046.08 | ||
| 15 | 8 | 5122.35 | 1046.08 | 35.86 | 1010.22 | 4112.13 | 8 | 2977.74 | 20.84 | 1046.08 | ||
| 16 | 9 | 4112.13 | 1046.08 | 28.78 | 1017.3 | 3094.83 | 9 | 1652.5 | 11.57 | 1046.08 | ||
| 17 | 10 | 3094.83 | 1046.08 | 21.66 | 1024.42 | 2070.41 | 10 | 317.99 | 2.23 | 320.22 | ||
| 18 | 11 | 2070.41 | 1046.08 | 14.49 | 1031.59 | 1038.82 | 11 | 0 | 0 | 0 | ||
| 19 | 12 | 1038.82 | 1046.09 | 7.27 | 1038.82 | 0 | 12 | 0 | 0 | 0 |
Download this sheet as an Excel practice file (.xlsx)
Step 1: inputs and the monthly payment
Put every assumption in its own cell at the top: the amount borrowed, the annual rate from your loan agreement, the number of monthly payments and, later, any extra you plan to pay. The example is a 12,000 personal loan at 8.4% over 12 months, kept short so the whole table fits on screen. The same formulas fill down to 60 rows for a car loan or 360 for a mortgage.
PMT needs the rate per period, so divide the annual rate by 12, and the number of payments, not years. The minus in front of B1 makes the payment positive. ROUND to cents, because a lender bills a payment in cents and every row below uses it.
Result: 1046.08
1,046.08 a month. Unrounded, PMT returns 1,046.081814, and that fraction of a cent is why the last payment needs special handling (step 3).
Step 2: interest, principal and the running balance
Row 8 is payment 1. B8 is =$B$1, the full amount owed. Interest for the month is the opening balance times the monthly rate: =ROUND(B8*$B$2/12,2). Principal is what is left of the payment: =C8-D8. The closing balance is =B8-E8.
Row 9 then starts with =F8, the previous closing balance, and fills down. That one link chains the whole table together. Lock the input cells with $ ($B$2, $B$4) so they do not shift as you fill; leave the row references relative.
Watch the split move. Payment 1 is 84.00 interest and 962.08 principal; by payment 12 interest has fallen to 7.27, because each month it is charged on a smaller balance.
Result: 84
84: the first month's interest on 12,000 at 8.4% a year. The principal in E8 is 962.08 and the balance after payment 1 is 11,037.92.
Step 3: a last payment that lands on exactly 0
Because the payment is rounded and so is each month's interest, a straight fill leaves a few cents owing (or overpaid) after the last row. Fix it in the payment column: =IF(A8=$B$3,B8+D8,$B$4). On every row except the last it pays the normal amount; on the last it pays whatever is still owed plus that month's interest.
Check the table with two sums. Principal must add up to the amount borrowed, and the payments minus the loan must equal the interest. Here the 12 payments total 12,552.97. Payment times term, B4*B3-B1, says 552.96 of interest: the cent of difference is the last payment absorbing the rounding.
Result: 1046.09
1,046.09: the final payment is one cent more than the others, and the closing balance in F19 is 0. SUM(E8:E19) returns 12,000 and SUM(D8:D19) returns 552.97.
Step 4: extra payments and when the loan ends
Columns I to O repeat the schedule with an Extra column fed by B5 (300 a month here, an example amount). The difference is in how the payment is capped, so the balance can never go below zero: payment =MIN($B$4,J8+K8), extra =MIN($B$5,J8+K8-L8), principal =L8+M8-K8, closing =J8-N8.
With those MIN caps, the month the loan is paid off gets a smaller payment (320.22 in month 10 here) and every row after it shows 0, so you can fill the table well past the expected end without negative balances. A plain "payment + extra" column keeps paying after the balance is gone.
Check with your lender before you rely on the result. Some apply an extra amount to principal straight away, some hold it as an early payment of next month's bill, and some loans charge for paying early. The table assumes extra goes straight to principal.
Result: 10
10 payments instead of 12. Total interest drops to 434.94, and =SUM(D8:D19)-SUM(K8:K19) shows 118.03 of interest saved.
Interest for part of the loan, and the IPMT/PPMT shortcuts
To see interest for a year or any run of payments, sum that block of the interest column. Payments 1 to 6 cost 402.03 of interest and payments 7 to 12 only 150.94. For a long loan with a payment-date column (=EDATE(first_date,A8-1)), sum by year with =SUMPRODUCT((YEAR(dates)=2027)*interest) instead of counting rows.
Excel also has functions that skip the table. IPMT(rate,per,nper,pv) returns the interest in payment number per, PPMT the principal, and CUMIPMT(rate,nper,pv,start_period,end_period,type) the interest between two payment numbers. CUMIPMT needs a positive pv, has no optional arguments (type is 0 for end-of-period payments) and returns a negative number. These functions are not available in this site's practice grid, so the table here is built with plain arithmetic.
Expect them to differ from your table by a cent or so in later rows. They work from the exact payment of 1,046.081814 and never round interest, while your schedule pays 1,046.08 and rounds each month. Neither is wrong; the table matches what a lender bills.
Result: 402.03
402.03: the interest in the first six payments, almost three quarters of the 552.97 total.
Which approach to use
Just need the payment or total interest: PMT alone, as in the loan payment guide. Want to see every month's split, test extra payments, or match a lender's statement: build the table with balance-times-rate interest, rounded to cents, with the IF on the last row. Need one figure such as interest paid in year three of a mortgage: CUMIPMT in Excel, or a SUM over the table. Prefer to start from a ready-made file: the free loan amortization schedule template has the same formulas laid out for 24 payments.
Your lender's figures may still differ by small amounts. Many personal and car loans charge interest daily on the actual days between payments, not one twelfth of the annual rate. The monthly method here is the standard calculation for a fixed-rate installment loan.
Common mistakes
Using the annual rate in the interest column
=B8*$B$2 charges a full year's interest every month. Divide by 12 for monthly payments, in PMT and in the interest column alike.
The rate cell moves when you fill down
Lock inputs with $ ($B$2, $B$4). An unlocked B2 becomes B3, B4 and so on, and the table fills with nonsense.
Balance goes negative after extra payments
Cap the payment and the extra with MIN against opening balance plus interest, so payments stop once the loan is paid off.
A few cents left on the last row
Round the payment and the interest, then make the last payment =opening balance + interest with an IF on the payment number.
FAQ
What is the formula for an amortization schedule in Excel?
Interest = opening balance × annual rate / 12, principal = payment − interest, closing balance = opening − principal, and each row's opening balance is the previous closing balance. The payment comes from =PMT(rate/12, number_of_payments, -loan_amount).
How do I add extra payments to an amortization schedule?
Add an Extra column that reads an input cell, subtract it from the balance along with the principal, and cap the payment and extra with MIN so they stop at a zero balance. Count the rows with a payment above zero to see when the loan ends.
Why does my amortization schedule not end at zero?
Rounding: a payment rounded to cents does not pay off the loan exactly. Make the final payment the remaining balance plus that month's interest, and the closing balance becomes 0.
How do I calculate total interest paid on a loan in Excel?
Sum the interest column of the schedule, or use payment × number of payments − loan amount. The two can differ by a cent when the last payment is adjusted for rounding.
Can I use the same schedule for a mortgage?
Yes. Change the inputs and fill the table to 360 rows for 30 years. Taxes and insurance paid through escrow are not part of the loan payment, so track them in separate columns.
Functions used
PMTLoan paymentROUNDRounds to digitsIFPicks a result from a testMINSmallest numberSUMAdds numbersCOUNTIFCounts cells that matchEDATESame day, months laterSUMPRODUCTMultiply then add
Related guides
- How to calculate a loan payment in Excel
- How to calculate compound interest in Excel
- Absolute vs relative cell references in Excel
- ROUND vs ROUNDUP vs ROUNDDOWN in Excel
- Excel formulas cheat sheet: the 25 everyone should know
- How to calculate a weighted score in Excel
- Excel percentage format wrong? How to fix it
Updated