by Allen Wyatt
(last updated February 7, 2015)
Excel includes a sorting feature that allows you to easily sort a data list by up to three columns. If you have a large or complex data list, you may want to sort by more than three columns, however. There are several ways you can accomplish this.
Assuming you have five columns you want sorted by, the first method is to just do two passes at sorting. If you want to sort the data in the order of columns A, B, C, D, and E, you would perform the first sort using columns C, D, and E. Once these are in order, sort by columns A and B. The result is that your entire data list is in order.
Closely related to this is the fact that you can use the sort tools on the toolbar to sort your five columns. First, choose a cell in column E, then click on either the Sort Ascending or Sort Descending tool. Repeat this process by selecting a cell in each of the other columns (D, C, B, and A), in turn, and clicking on the appropriate tool. At the end of this iterative process (which takes only five quick clicks of the sorting tools), your entire list is in the order you desire.
There is an important things to keep in mind when sorting as described here: The character of your list data can affect the quality of the sort performed. If your data contains empty cells, error values, or numbers formatted as text, then Excel may not sort the data in the method you expect. The solution is to "normalize" your data—for instance, making sure that numbers are really numbers and not numbers formatted as text—and then do the sort again.
Another solution is to create a "sorting column" for your data. This approach works great if your data is all text, or if you can easily convert it into a text-based format for the sorting. Under this scenario, you would combine the contents of columns A through E into column F, and then sort by a single column: F. You could use this type of formula in column F:
=A1 & B1 & C1 & D1 & E1
If one of the columns contains a date, you will need to convert the date to a consistent text format, as done with this formula:
=A1 & B1 & C1 & TEXT(D1,"yyyymmdd") & E1
If one of the columns contains numeric values, you can normalize them by using a similar TEXT function construct that pads the value with leading zeroes:
=A1 & TEXT(B1,"000000") & C1 & D1 & E1
If you do quite a bit of sorting, and you don't want to use Excel's built-in sorting routines, then you should investigate third-party sorting functions. Sorting algorithms are a fascinating branch of mathematics, and some very popular algorithms (such as shell sort, exchange sort, bubble sort, etc.) can be implemented through Excel functions. How those functions would be used on your system depends on the way they were implemented by their developer.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (2255) applies to Microsoft Excel 97, 2000, 2002, and 2003.
Save Time and Supercharge Excel! Automate virtually any routine task and save yourself hours, days, maybe even weeks. Then, learn how to make Excel do things you thought were simply impossible! Mastering advanced Excel macros has never been easier. Check out Excel 2010 VBA and Macros today!
Got a huge amount of data you need to sort in a worksheet, but Excel doesn't seem to be sorting it correctly? Here's some ...Discover More
If you need to know how a range of data is sorted, the task is not as easy as you might at first think. This tip examines why ...Discover More
Sorting information in a worksheet can be confusing when Excel applies sorting rules of which you are unaware. This is ...Discover More
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Got a version of Excel that uses the menu interface (Excel 97, Excel 2000, Excel 2002, or Excel 2003)? This site is for you! If you use a later version of Excel, visit our ExcelTips site focusing on the ribbon interface.