SORTBY
Sorts a range or array based on values in one or more corresponding ranges or arrays.
Syntax
SORTBY(array, by_array1, [sort_order1], [by_array_n], [sort_order_n])
Arguments
| Argument |
Description |
Required |
array |
The array or range to sort. |
Required |
by_array1 |
The first array or range to sort by. |
Required |
sort_order1 |
The sort order for the first by_array: 1 for ascending (default), -1 for descending. |
Optional |
by_array_n |
Additional arrays or ranges to sort by. |
Optional |
sort_order_n |
Sort orders for additional by_arrays. |
Optional |
Examples
Sort names by age
=SORTBY(A1:A3, B1:B3)
Result ⇒
Array: [["Bob"], ["Alice"], ["Charlie"]]
| Alice |
30 |
| Bob |
25 |
| Charlie |
35 |
Sort names by age descending
=SORTBY(A1:A3, B1:B3, -1)
Result ⇒
Array: [["Charlie"], ["Alice"], ["Bob"]]
| Alice |
30 |
| Bob |
25 |
| Charlie |
35 |
Sort by city then age
=SORTBY(A1:C3, C1:C3, 1, B1:B3, 1)
Result ⇒
Array: [["Bob",25,"LA"], ["Alice",30,"NY"], ["Charlie",35,"NY"]]
| Alice |
30 |
NY |
| Bob |
25 |
LA |
| Charlie |
35 |
NY |
Related Functions
Other Data functions:
- CHOOSE - Uses index to return a value from the list of value arguments
- COLUMN - Returns the column number of the current cell context.
- DROP - Drops the first N rows and optionally first N columns from an array. Returns an error if the result would be empty.
- FILTER - Returns a filtered array containing only rows that match the criteria
- GROUPBY - Groups data by a key and applies an aggregator function to each group
- HLOOKUP - Returns the corresponding value from the specified row of table which matches exactly or approximately to the first row of the table.
- HSTACK - Horizontally stacks arrays by appending columns
- INDEX - Returns a cell value from a list or table based on its column and row numbers.
- LAST - Returns the last N rows and optionally last N columns from an array. Returns an error if the result would be empty.
- MAP - Processes each row in an array with a formula including a COL or CELL keyword and returns it as a 2D array.
- MATCH - Returns the position of the item/lookup_value in the lookup_array or range.
- PICK - Selects specific columns from an array using column numbers or header names
- ROW - Returns the 1-indexed row number of the current cell
- SEQUENCE - Returns the list of generated sequential numbers in an array.
- SORT - Sorts the values in a range or array.
- TAKE - Returns the first N rows and optionally first N columns from an array. Returns an error if the result would be empty.
- TRANSPOSE - Returns the result after transposing the rows and columns of an array or range.
- UNIQUE - Returns a list of unique values in a list or range.
- VLOOKUP - Returns a value from a table by looking up a value in the first column and returning a value from the specified column
- VSTACK - Vertically stacks arrays by appending rows
- XLOOKUP - Searches a range or array for a match and returns the corresponding item from a second range or array. Supports exact and approximate matching, wildcards, and reverse search.
← Back to Formula Reference