How to Automatically Reorder a Numbered Priority List in Excel
Question details
The user wants to automatically reorder a task priority list in Excel based on changing priority numbers, without relying on VBA scripts.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Managing a dynamic task schedule where changing a single item's priority automatically adjusts the display order of the remaining tasks, and allows for inserting or removing tasks on the fly.
- Observed behavior
- Manual sorting is required every time a task priority changes. The goal is to set up a formula-driven output list that immediately updates and sorts tasks according to newly entered numerical priorities.
Ensure you are using a version of Excel that supports Dynamic Array formulas, such as Microsoft 365, Excel 2021, or the latest version of WPS Office, as this method relies on the SEQUENCE function.
Create a Formula-Based Dynamic Priority List
Use a combination of SEQUENCE, VLOOKUP, and LARGE functions to generate a secondary task list that sorts itself automatically when your source data changes.
Instead of constantly re-sorting your primary data using the sorting tool, you can keep a raw data table and feed it into a dynamic output range. This method leaves your original data untouched while displaying an automatically ordered list nearby.
Dedicate two adjacent columns for your manual entries. For example, use Column G for your priority numbers and Column H for your task names. Leave room for future tasks (e.g., rows 2 to 100).
Highlight your priority column (Column G). Go to the Data tab and select Data Validation. Under the Settings tab, change the 'Allow' dropdown to 'Custom', and enter the formula =COUNTIF(G:G,G1)=1. This stops you from accidentally assigning the same priority number to two different tasks.
In the cell where you want your new sorted list to begin (e.g., A2), type the formula =SEQUENCE(COUNTA($H$2:$H$100),,1,1) and press Enter. This will dynamically count the number of tasks in your raw list and create an ordered list of numbers.
In the adjacent cell (e.g., B2), enter the formula =IFERROR(VLOOKUP(LARGE($G$2:$G$100,COUNTA($H$2:$H$100)+2-ROW()),$G$2:$H$100,2,FALSE),"") and press Enter. Drag or fill this formula down to match your sequence column.
Change a priority number in Column G. The tasks in your newly created output list in Columns A and B will instantly reorder themselves without needing any manual refreshing.

Manage Dynamic Task Lists Efficiently with WPS Office
WPS Office Spreadsheet fully supports dynamic array functions like SEQUENCE and SORT, allowing you to build self-sorting priority lists effortlessly without complex VBA coding.
- 1. Open WPS Spreadsheet: Launch WPS Office and open a new or existing spreadsheet to house your priority lists.
- 2. Input Source Data: Quickly set up your raw manual entry columns for priorities and tasks using the clean, familiar interface.
- 3. Apply Dynamic Formulas: Use native functions like =SEQUENCE() and =VLOOKUP() to instantly construct an automated, self-sorting list.

Frequently Asked Questions
Why is my SEQUENCE formula returning a #NAME? error?
The #NAME? error usually occurs if your version of Excel does not support dynamic array functions. You will need Microsoft 365, Excel 2021, or a modern compatible suite like WPS Office to use the SEQUENCE function.
Can I use the SORT function instead to automatically reorder a list?
Yes. If your spreadsheet software supports dynamic arrays, using the formula =SORT(G2:H100, 1, 1) is a much simpler and modern alternative to the VLOOKUP and LARGE combination.
How do I stop duplicate priority numbers from being entered?
You can utilize the Data Validation feature. Highlight the column where you type priorities, choose Custom validation, and input the formula =COUNTIF(G:G,G1)=1. This creates a rule that rejects repeated numbers.
Do I need to learn VBA or Macros to auto-sort data in Excel?
No, VBA is not required. By structuring your data properly and utilizing formula combinations like VLOOKUP/LARGE or the newer SORT function, you can build a separate output table that dynamically updates whenever source data changes.




