Функция SORTBY (СОРТПО) в Excel сортирует содержимое диапазона или массива на основе значений из другого диапазона или массива. Диапазон или массив, используемый для сортировки, не обязательно должен присутствовать в результатах.
Что делает функция SORTBY в Excel?
Функция SORTBY в Excel сортирует диапазон или массив по столбцу.
Возвращаемое значение
Сортированный массив.
Аргументы
- array — диапазон или массив для сортировки.
- by_array — диапазон или массив для сортировки.
- sort_order — [необязательно] Порядок сортировки. 1 = по возрастанию (по умолчанию), -1 = по убыванию.
- array/order — [необязательно] Дополнительные пары массива и порядка сортировки.
Синтаксис
=SORTBY(array, by_array, [sort_order], [array/order], …)
Примечания по использованию
Функция SORTBY сортирует содержимое диапазона или массива на основе значений из другого диапазона или массива с помощью формулы. Результатом СОРТПО является отсортированная копия данных, которая «переливается » на рабочий лист в диапазон. Если значения в исходных данных изменяются, выходные данные функции SORTBY обновятся автоматически.
Функция СОРТПО принимает три основных аргумента: array, by_array и sort_order. Первый аргумент array — это диапазон или массив, который нужно отсортировать. Второй аргумент, by_array, содержит значения, которые будут использоваться для сортировки. Эти значения могут быть взяты из существующего диапазона или из массива, созданного по формуле.
Обратите внимание, что значения by_array не обязательно должны быть частью исходных данных и не обязательно должны появляться в выходных данных. Однако by_array должен иметь размеры, совместимые с array. Например, если массив содержит десять строк, by_arrayтакже должно содержать десять строк.
Наконец, необязательный аргумент sort_order определяет направление сортировки. Используйте 1 для возрастания и -1 для убывания. По умолчанию SORTBY сортирует данные в порядке возрастания. Чтобы выполнить сортировку по более чем одному уровню, предоставьте дополнительные аргументы sort_by и sort_order парами.
В отличие от функции SORT, функция SORTBY не имеет аргумента, который явно управляет сортировкой по строкам, а не сортировкой по столбцам. Вместо этого диапазон или массив, предоставленный для аргумента by_array, автоматически определит ориентацию сортировки. Если by_array представляет собой вертикальный диапазон, функция СОРТПО выполняет вертикальную сортировку по строкам. Если by_array представляет собой горизонтальный диапазон, функция SORTBY выполняет горизонтальную сортировку по столбцам.
Базовый пример
Чтобы отсортировать диапазон1 в порядке возрастания, используя значения в диапазоне2 :
=SORTBY(range1,range2// сортировать range1 по range2, возрастание
=SORTBY(range1,range2,1)// сортировать range1 по range2, возрастание
Чтобы переключить порядок сортировки на нисходящий, используйте:
=SORTBY(range1,range2,-1)// сортировать range1 по range2, возрастание
Сортировка с помощью массивов
Функцию SORTBY также можно использовать с массивами и константами массивов. В приведенном ниже примере мы сортируем первые четыре буквы алфавита в произвольном порядке, используя числовые значения во втором массиве. По умолчанию порядок сортировки — по возрастанию:
=SORTBY({"a","b","c","d"},{3,4,2,1}) // возвращает {"d","c","a","b"}
Использование отрицательного значения (-1) для порядка сортировки приведет к сортировке букв в порядке убывания на основе числовых значений во втором массиве:
=SORTBY({"a","b","c","d"},{3,4,2,1},-1) // {"b","a","c","d"}
Диапазоны и массивы можно смешивать. Формула ниже сортирует значения в A1:A5, используя предоставленную константу массива:
=SORTBY(A1:A5,{3;5;2;1;4})
Обратите внимание, что размеры или аргумент диапазона должны быть совместимы с размерами аргумента by_array. В данном случае оба содержат по пять строк.
Пример – сортировка по баллам
В примере, показанном выше, формула в E5:
=SORTBY(B5:B14,C5:C14,-1) // сортировка по сортам в порядке убывания
Вывод в E5:E14 представляет собой список имен, отсортированный по баллам в порядке убывания. Для сортировки по оценкам в порядке возрастания используйте:
=SORTBY(B5:B14,C5:C14,1) // сортировка по сортам в порядке убывания
Сортировка по двум уровням
Для сортировки набора данных по двум уровням используется общая формула:
=SORTBY(array,by_array1,sort_order1,by_array2,sort_order2)
где массив — это диапазон, содержащий все данные, подлежащие сортировке, а by_array1 и by_array2 — совместимые диапазоны или массивы, а sort_order1 и sort_order2 предоставляются как 1 (по возрастанию) или -1 (по убыванию).
Примечания
- Все аргументы массива должны иметь совместимые размеры, иначе функция СОРТПО вернет #VALUE!
- Аргументы by_array могут содержать только одну строку или один столбец.
- Аргумент sort_order может иметь значение только -1 (по убыванию) или 1 (по возрастанию).
- Если для sort_order не указано значение, SORTBY в Excel будет сортировать в порядке возрастания.