Функция SORTBY в Excel

Функция 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 в Excel

Чтобы переключить порядок сортировки на нисходящий, используйте:

=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 будет сортировать в порядке возрастания.
Автор А. Днепров

Обучаю основам работы с офисными программами.

Функция SORTBY в Excel
14.7 Использование различных режимов просмитра документа