How to Create a Dynamic Excel Loan Repayment Schedule
Question details
The user needs an automatically expanding loan amortization table that generates the correct number of payment periods whenever the loan term or payment frequency changes.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Setting up a flexible financial model where loan variables are frequently adjusted, requiring the schedule to expand or contract without manual row editing.
- Observed behavior
- The goal is to automatically output exact payment rows (e.g., 20 rows for a 10-year term with two payments per year) while accurately calculating payment, principal, interest, and remaining balance.
Ensure you have your primary loan variables ready in separate cells, including the total loan amount, annual interest rate, loan term in years, and the number of payments per year.
Use Dynamic Array Formulas and Financial Functions
This is the most efficient method for modern spreadsheet versions, utilizing the SEQUENCE function to automatically expand the schedule based on input variables.
By combining dynamic array functions with standard financial formulas, your repayment schedule will spill down the exact number of rows needed without requiring VBA or complex macros.
Create clear, named input cells at the top of your sheet for Loan Amount, Annual Interest Rate, Term in Years, and Payments per Year.
In the first cell of your schedule's Period column, enter the formula =SEQUENCE(Years*Payments_Per_Year). This will instantly generate a numbered list of all payment periods.
In the Payment column, use the PMT function. Ensure you divide the annual rate by the payments per year, and reference the dynamic period array (using the # symbol) to calculate the fixed payment.
In adjacent columns, apply the PPMT function for principal reduction and the IPMT function for interest, referencing the dynamic period numbers to fill the entire column automatically.
In the Balance column, subtract the cumulative principal paid from the initial loan amount for each dynamic row.

Build the Schedule Using Power Query
Best for users who want to connect to external data sources or prefer a query-based approach to generate rows dynamically.
Easily Build Dynamic Amortization Schedules with WPS Spreadsheet
WPS Spreadsheet fully supports advanced financial functions like PMT, IPMT, PPMT, and dynamic array formulas, allowing you to instantly build responsive loan schedules without complex coding.
- 1. Open a Blank Workbook: Launch WPS Spreadsheet and create a new blank workbook to start building your model.
- 2. Input Loan Variables: Enter your core loan details, such as Loan Amount, Interest Rate, and Term, into dedicated cells.
- 3. Apply Dynamic Functions: Use the SEQUENCE function to generate the exact number of rows needed for your payment periods.
- 4. Complete the Schedule: Utilize WPS Spreadsheet's built-in PMT, IPMT, and PPMT functions to accurately populate the repayment table.

Frequently Asked Questions
Why isn't my PMT function calculating the correct monthly payment?
Ensure your interest rate and total periods are aligned with your payment frequency. For monthly payments, you must divide the annual interest rate by 12 and multiply the loan term in years by 12.
Do I need to use VBA to make my amortization table dynamic?
No. While VBA was historically required to add or delete rows automatically, modern spreadsheet features like dynamic array formulas (such as SEQUENCE) or Power Query allow you to create automatically expanding tables without writing macro code.
How do I calculate the remaining balance after a specific payment?
You can calculate the remaining balance by subtracting the cumulative principal paid from the original loan amount. Alternatively, you can use the CUMPRINC function to find the total principal paid up to any specific period.




