In Microsoft Excel, there are numerous procedures to auto-sort a table or an array if someone changes data. In this article, youâ€™ll learn **how you can use the SORT function** or combine it with other necessary functions to sort data automatically when data is changed later.

**Table of Contents**hide

**Download Practice Workbook**

You can download the Excel workbook that we have used to prepare this article.

**9 Suitable Methods to Auto Sort When Data Changes in Excel**

**1. Auto Sort in a Descending Order When Data Changes**

In the following dataset, there are sales values of some salesmen in the first table. In the second table, weâ€™ll sort the first table by those sales values in descending order and then change a sales value to see if the table auto sorts.

Weâ€™ll use the **SORT** function here to sort the table data first. The generic formula of the SORT function is:

**=SORT(sort_array, [sort_index], [sort_order], [by_col])**

**ðŸ“Œ**** Step 1:**

âž¤ Select the output **Cell E5** in the second table and type the following formula:

`=SORT(B5:C12,2,-1,FALSE)`

âž¤ Press **Enter **and the function will return a sorted array with the sales values in descending order.

**ðŸ“Œ**** Step 2:**

âž¤ Now change any of the sales data in the first table, e.g: In **Cell C9**, type 4000 and press **Enter**.

Like in the picture below, youâ€™ll find the sales value of Jordan in a new row based on the position of the sales value.

**Read more:** **How to Auto Sort Multiple Columns in Excel**

**2. Auto Sort in an Ascending Order When Data Changes**

Similarly, we can also apply the function to sort the given table in ascending order. In that case, we have to simply change the third argument **([sort_order])** to **â€˜1â€™** which denotes the option of ascending order.

So, the required formula in **Cell E5** will be now:

`=SORT(B5:C12,2,1,FALSE)`

After pressing **Enter**, youâ€™ll get the entire table data sorted by sales values in ascending order.

Now if you change any sales value in **Column C**, the sorted table will show the output at once.

**3. Auto Sort by Column When Data Changes in Excel**

Letâ€™s transpose all data in the previous table. So, the columns have been converted into rows now. We have to sort the table data by the columns in **Row 5** now where the sales data are lying.

The required formula to sort the table by columns in **Cell C7** will be:

`=SORT(C4:I5,2,-1,TRUE)`

Press **Enter **and youâ€™ll find the sales data in descending order in **Row 8**.

**Read more:** **How to Sort Rows in Excel**

**4. Auto Sort Columns by Different Orders When Data Changes**

In practical scenarios, itâ€™s very common to **sort multiple columns** by different orders. For example, in the modified dataset below, a new column with the **Counter **header has been added. So, weâ€™ll now consider both **Counter **and **Sales **columns and sort the entire table data by assigning the criteria of ascending and descending orders in the **Counter **and **Sales **columns respectively.

For example, the letter** â€˜Aâ€™** will be shown thrice in a row at first in the **Counter **column and the corresponding sales values will be sorted in descending order.

In the output **Cell F5**, the required formula will be then:

`=SORT(B5:D12,{2,3},{1,-1})`

Press **Enter **and youâ€™ll be displayed the sorted table right away. Now change any sales data in **Column D**, youâ€™ll notice the instant update in the sorted table.

**5. Auto Sort by Filtering When Data Changes in Excel**

**FILTER** function simply filters a range or an array based on the given conditions or criteria. By using the **FILTER **function inside the **SORT **function, we can extract a range of rows from the primary table based on the given condition(s) and then sort them by a specified order.

For example, from the following dataset, weâ€™ll filter the rows where sales values are more than or equal to** $ 2000** and then the **SORT **function will sort those extracted rows in descending order.

The required formula in the output **Cell E5** will be:

`=SORT(FILTER(B5:C12,C5:C12>=2000),2,-1)`

Now press **Enter **and youâ€™ll find the final output with given conditions as shown in the picture below. You can alter any data in the **Sales **column in the first table to see the changes in the sorted table.

## Further Readings:

**Auto Sort When Data is Entered in Excel (3 Methods)****How to Sort Rows by Column in Excel (4 Methods)****Sort Column by Value in Excel (5 Methods)**

**6. Auto Sort Top 3 When Data Changes in Excel**

By combining **INDEX****, SORT, and ****SEQUENCE** functions, we can extract three or any number of rows where top sales values are present and then sort them in descending order.

To get the rows with the top three sales values from the primary table and then to sort them in descending order, the required formula in the output **Cell E5** will be:

`=INDEX(SORT(B5:C12, 2, -1), SEQUENCE(3),{1,2})`

After pressing **Enter**, youâ€™ll find the top 3 sales values in descending order in the new table.

**ðŸ”Ž**** How Does the Formula Work?**

- The
**SORT**function inside the**INDEX**function defines the sorted array. - The
**SEQUENCE**function defines the number of rows that have to be extracted from the array. - In the third argument
**([column_num])**of the**INDEX**function, the index numbers of both columns have been assigned to obtain the final output with those two columns present in the primary table.

**7. Auto Sort Bottom 3 When Data Changes in Excel**

To get the bottom or lowest three sales values, we have to make a minor change in the formula that was used in the previous section. As we have to extract the sales values in ascending order here, the third argument** ([sort_order]) **of the **SORT **function will be** â€˜1â€™** now.

So, the final formula in the output **Cell E5** should be:

`=INDEX(SORT(B5:C12, 2, 1), SEQUENCE(3),{1,2})`

After pressing **Enter**, youâ€™ll get the lowest or bottom three sales values in ascending order at once in the output table.

**8. Auto Sort and Get a Value from a Specific Position**

By incorporating **INDEX **and **SORT **functions only, weâ€™ll now extract the second-highest and second-lowest sales values from the table.

To get the second-highest sales value from the given table data, we have to type the following formula in **Cell E7:**

`=INDEX(SORT(B5:C12,2,-1),2,{1,2})`

After pressing **Enter**, youâ€™ll be shown the second-highest sales value right away.

And to get the second-lowest sales value, we have to simply change the â€˜sort orderâ€™ in the SORT function. So, the required formula to obtain the second-lowest sales value in **Cell E11** will be:

`=INDEX(SORT(B5:C12,2,1),2,{1,2})`

You can change any sales data now in **Column C** to find if it matches the criteria of second-highest or second-lowest value in the output cells.

**9. Auto Sort with Table While Entering New Data in Excel**

All methods mentioned above are valid for data changes only. But if you add new data under the given table, youâ€™ll not find any change in the sorted array. But to make an instant update in the sorted array for new data entries in the primary table, we have to convert the primary table into a filtered table format.

In the following picture, youâ€™re seeing no change in the sorted table after the input of new data in the primary table. But weâ€™ll now see how to make the sorted table auto-update with a new input in the primary table.

**ðŸ“Œ**** Step 1:**

âž¤ Select the range of cells of the primary table **(B4:C12)** first.

âž¤ Press **CTRL+T** to convert the chart into a filtered table format.

**ðŸ“Œ**** Step 2:**

âž¤ In **Row 13**, add new data with the name of a salesman and the corresponding sales value.

Youâ€™ll notice the instant update in the sorted table as shown in the picture.

**Concluding Words**

I hope all of these methods mentioned above will now help you to apply them in your Excel spreadsheet while working with auto sorting. If you have any questions or feedback, please let me know in the comment section. Or you can check out our other articles related to Excel functions on this website.