To sort a list in a custom order, you can combine the SORTBY function with the MATCH function. In the example shown, The table is being sorted by the "group" column using in the order shown in cells J5:J7. The formula in D5 is:
where "custom" is the named range J5:J7 that defines desired sort order.
How this formula works
In this example, we are sorting a table with 10 rows and 3 columns. In the range J5:J7 (the named range "custom"), the colors "red", "blue", and "green" are listed in the desired sort order. The goal is to sort the table using values in the Group column in this same custom order.
The SORTBY function allows sorting based on one or more "sort by" arrays, as long long as dimensions are compatible with the source data. In this case, we can't use the named range "custom" directly in SORTBY, because it only contains 3 rows while the table contains 10 rows.
However, to create an array with 10 rows that can be used as a "sort by" array, we can use the MATCH function like this:
Notice we are passing in the Group values in D5:D14 as lookup values, and using "custom" as the lookup table. The result is an array like this:
Each value in the array represents the numeric position of given group value in "custom", so there are 10 rows represented. This array is passed into the SORTBY function as the by_array1 argument. SORTBY sorts the table in the "red", "blue", "green" order and returns the result as a spill range starting in cell D5.
To sort by one column, you can use the SORT function or SORTBY function . In the example shown, data is sorted by the Group column. The formula in F5 is: = SORT ( B5:D14 , 3 ) Notice data is sorted in ascending order (A-Z) by default. How this...
To sort by two columns, you can use the SORTBY function . In the example shown, data is sorted first by the Group column in ascending order, then by the Score column in descending order. The formula in F5 is: = SORTBY ( B5:D14 , D5:D14 , 1 , C5:C14...
To sort a list or table in random order, you can use the SORTBY function with the RANDARRAY function . In the example shown, the formula in D5 is: = SORTBY ( data , RANDARRAY ( COUNTA ( data ))) where "data" is the named range B5:B14. The result is...
MATCH is an Excel function used to locate the position of a lookup value in a row, column, or table. MATCH supports approximate and exact matching, and wildcards (* ?) for partial matches. Often, the INDEX...
Excel Formula Training
Formulas are the key to getting things done in Excel. In this accelerated training, you'll learn how to use formulas to manipulate text, work with dates and times, lookup values with VLOOKUP and INDEX & MATCH, count and sum with criteria, dynamically rank values, and create dynamic ranges. You'll also learn how to troubleshoot, trace errors, and fix problems. Instant access. See details here.