This lesson is part of Dynamic Array Formulas

Purchase the course to access all 11 sections and start learning.

Shortcuts in this lesson

Shortcut Windows Mac
Move one cell down ↓ ↓
Enter and move right Tab Tab
Complete entry and stay in same cell CtrlEnter ⌃Return
Enter and move down Enter Return
Copy selected cells CtrlC ⌘C
Cancel selection Esc Esc
Paste content from clipboard CtrlV ⌘V
Evaluate part of a formula F9 FnF9

Transcript

In this video, we'll look at how to sort with SORTBY function using a custom list.

One challenge that comes up frequently when sorting is a need to sort in a custom order. For example, in this worksheet, we have a list of opportunities, and we want to sort the list in the order that stages appear in column H.

How can we do this with a formula?

Well, to start off, if we try to sort the data with the SORTBY function, and provide the list of stages for the sort_by array, I'll get an error.

This is because the source data has 12 rows, and the range that contains the stages only has 4 rows.

The SORTBY requires the array and sort_by arguments to have compatible dimensions.

So, to work out a solution, let's start by adding a helper column. Our goal here is to create an array with values that represent the required sort order.

How can we do that?

Well, the MATCH function is actually a good solution here. What we want is a position for each stage. I can get that by feeding in the values from column E as lookup values into MATCH, then matching against the values in column H.

Note this configuration is "backwards" from a normal MATCH formula set-up.

Also note that we need to set this as an exact match.

When I enter the MATCH formula, we get a result for each row of the data. Notice all Leads are 1, all Quotes are 2, and so on.

In other words, these values represent the order that stages appear in column H.

Now that we have a helper column in place, I can enter a SORTBY formula, and use these values to sort by.

When I press enter, all data is sorted as needed.

Now let's remove the helper column. First, I'll copy the MATCH formula to the clipboard.

Then I'll edit the SORTBY formula and replace the sort_by argument with the formula I copied.

If I use the F9 key, I can see that the array that MATCH returns contains the same values that we have in the helper column.

And, when I enter the formula, the data is still sorted correctly.

Now I can remove the helper column, and everything still works fine.