How to Automatically Create Sorted Excel Worksheets Without Macros
Question details
The user wants to maintain separate Excel worksheets sorted by different criteria (such as first name, last name, or group) that automatically update from a single master data table, without using macros.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Managing a centralized master list of records and dynamically displaying sorted subsets of that data on separate worksheet tabs.
- Observed behavior
- Instead of relying on manual sorting or complex VBA macros to keep data organized across multiple sheets, the goal is to implement an automated, dynamic setup.
Ensure your master data is formatted as an Excel Table (Ctrl+T) so that any formulas or queries you create can automatically expand to include new rows as data is added.
Use Dynamic Array SORT Formulas
The easiest way to automatically keep separate sheets sorted is by using the dynamic array SORT function, which updates instantly without requiring a manual refresh.
This method requires Microsoft 365, Excel 2021, or a compatible modern spreadsheet software like WPS Office Spreadsheet that supports dynamic arrays.
Copy the row headers from your master sheet (e.g., 'Unsorted') and paste them into the top row of your new destination sheet.
In the first empty cell below your headers (e.g., A2), enter the formula =SORT(Unsorted!A2:D107, 1, 1). This will pull the data and sort it by the first column in ascending order.
To prevent blank cells from displaying as zeros, you can wrap the formula with an IF statement: =IF(SORT(Unsorted!A2:D107)="","",SORT(Unsorted!A2:D107, 1)).
To sort by a different column (like Last Name or Group), simply change the second argument in the formula. For example, use a 2 to sort by the second column or a 3 to sort by the third column.

Use Power Query to Load Sorted Data
If you are using an older version of Excel that lacks dynamic array formulas, Power Query provides a robust, macro-free alternative.
Auto-Sort Your Data for Free with WPS Spreadsheet
WPS Office Spreadsheet fully supports dynamic array functions like SORT, allowing you to seamlessly auto-populate sorted worksheets without writing a single line of VBA code.
- 1. Open your workbook: Launch WPS Spreadsheet and open your master data workbook.
- 2. Prepare the destination sheet: Create a new sheet and copy your column headers to the top row.
- 3. Enter the formula: Type =SORT(Sheet1!A2:D100, 1, 1) into the first empty cell under the headers to instantly generate your dynamically sorted list.

Frequently Asked Questions
Can I sort by multiple columns at the same time using the SORT function?
Yes, you can perform multi-level sorting by passing arrays. For example, using =SORT(A3:B27, {1,2}, {1,-1}) sorts the data first by column 1 in ascending order, and then by column 2 in descending order.
Why am I getting a #SPILL! error when I use the SORT formula?
A #SPILL! error occurs when the dynamic array formula does not have enough empty space to display all the sorted results. Ensure the cells below and to the right of your formula are completely blank and free of any hidden data.
Do I need to manually refresh the sheets that use the SORT function?
No, dynamic array formulas like SORT recalculate and update instantly when you change the source data. However, if you chose the Power Query method, you must click Data > Refresh All to see the updates.




