Перейти к содержимому

Функция СОРТ динамических массивов в Excel

Это перевод второй главы книги Bill Jelen. Excel Dynamic Arrays Straight to the Point. К содержанию.

Рис. 8. Исходные данные

Скачать заметку в формате Word или pdf, примеры в формате Excel

Сортировка в прежних версиях Excel

Ранее сортировка в Excel с помощью формул была довольно сложной. На рис. 8 представлены исходные данные, которые будут использоваться на протяжении этой главы.

Старый способ сортировки включал цепочку формул:

Рис. 9. Старый способ сортировки с помощью формул; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

Новые функции динамических массивов СОРТ() и СОРТПО() значительно упростили эту процедуру.

Синтаксис функции СОРТ()

Рис. 10. Функция СОРТ()

Допустим, вы хотите отсортировать исходный диапазон A3:C16 (см. рис. 8) по полю Score (Оценка). Score – это третий столбец в диапазоне, поэтому значение аргумента индекс_сортировки = 3. Аргумент порядок_сортировки предлагает два значения: 1 – для возрастания и минус 1 – для убывания. К сожалению, не поддерживается сортировка по цвету, формуле или пользовательскому списку.

Рис. 11. Укажите аргументы функции

Четвертый аргумент используется редко. Он позволяет сортировать по столбцам. Но 99,9% людей сортируют по строкам. Если вам нужно выполнить сортировку по столбцам, укажите ИСТИНА для последнего аргумента по_столбцу. Этот аргумент является необязательным и по умолчанию имеет значение ЛОЖЬ.

Итак, вы ввели всего одну формулу в ячейку Е3. Благодаря новому движку calc формула разливается по соседним ячейкам. Обратите внимание, поскольку вы вводите формулу один раз, вам не нужно заботиться о «правильном» использовании абсолютных и относительных ссылок.

Рис. 12. Данные теперь отсортированы

Простая сортировка с одним аргументом

Если у вас только один столбец данных и вы хотите отсортировать их по возрастанию, достаточно только первого аргумента в функции СОРТ():

Рис. 13. Аргументы 2, 3 и 4 являются необязательными

Поскольку здесь только один столбец однородных данных, Excel не распознает строку заголовка. Поэтому ее нужно перенести, и отсортировать данные без заголовка: А2:А6.

Сортировка на основе двух и более столбцов

Допустим вам нужна двухуровневая сортировка. Например, сортировка по столбцу Представитель  по возрастанию и столбцу Продажи по убыванию. Используйте константы массива для второго и третьего аргументов функции =СОРТ(A2:C17,{2;3},{1;-1}).

Рис. 14. Двухуровневая сортировка

Возможно, вам покажется проще формула =СОРТПО(A2:C17;B2:B17;1;C2:C17;-1) (см. главу 3).

Сортировка по столбцам

Google Sheets имел функцию сортировки задолго до Excel. Чтобы функция сортировки Excel выглядела лучше, чем версия Google Sheets, разработчики добавили необязательный четвертый аргумент, который позволяет сортировать данные слева направо. Укажите ИСТИНА или 1 в качестве четвертого аргумента. Ниже данные сортируются по годам – по первой строке:

Рис. 15. Используя четвертый аргумент, можете сортировать слева направо

Второй и третий аргумент опущены, используются значения по умолчанию.

Что осталось для CTRL + SHIFT + ENTER

Новые функции динамического массива практически полностью заменили прежние функции массивов Ctrl + Shift + Enter. У последних осталось два локальных применения.

Во-первых, предположим, что вы хотите убедиться, что никто не удалит или не вставит строки между строкой 1 и строкой 20. Можно выбрать какой-нибудь неиспользуемый столбец, например Z1:Z20, ввести =1 и нажать Ctrl + Shift + Enter. Если кто-то позже попытается удалить или вставить строку, Excel не разрешит эти изменения, поскольку нельзя изменять часть массива.

Во-вторых. Допустим, вам нужны только три лучших результата функции СОРТ. Можно выбрать диапазон Е3:G6, ввести функцию =СОРТ(A3:C16;3;-1), и нажать Ctrl + Shift + Enter. Это предотвратит выход результатов за пределы выбранного диапазона. Т.е., функция СОРТ() разольется не на весь диапазон, а только на выбранный.

Рис. 16. Формулы Ctrl + Shift + Enter по-прежнему ограничивают размер возвращаемого массива

В справке Microsoft говорится, что устаревшие формулы массива, введенные с помощью сочетания клавиш Ctrl + Shift + Enter, по-прежнему поддерживаются в целях обеспечения обратной совместимости, но больше их использование не требуется. Если вы хотите, вы можете преобразовать старые формулы массива в динамические формулы массива путем поиска первой ячейки в диапазоне массива, копирования текста формулы, удаления всего диапазона из старого массива и повторного ввода формулы в левой верхней ячейке. Перед обновлением устаревших формул массива до динамических формул массива следует помнить о некоторых различиях вычислений между ними.

2 комментария для “Функция СОРТ динамических массивов в Excel”

  1. У Вас к рис.12 написано, что «движок распознал строку заголовку, и оставил его на своем месте». Но если сортировать по возрастанию, то строка заголовков оказывается снизу. Так что дело не в «распознавании», а в сортировке.

  2. Сергей Багузин

    Ирина, спасибо. Поправил текст))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *