Гид по технологиям

Как использовать функцию SORTBY в Excel — детальное руководство

7 min read Excel Обновлено 05 Jan 2026
Как использовать SORTBY в Excel
Как использовать SORTBY в Excel

Крупный план списка данных в электронной таблице.

Microsoft Excel предлагает мощные инструменты для компиляции, организации и визуализации данных. Иногда нужно создать несколько специальных представлений одного и того же набора данных — например, отсортировать по регионам, потом внутри региона по продажам и затем по фамилии. Функция SORTBY даёт удобный и контролируемый способ получить такие представления, не меняя оригинал.

Когда полезна SORTBY

  • Когда нужно создать отдельный отсортированный вид данных, не трогая исходный диапазон.
  • Когда сортировка должна выполняться по нескольким критериям с разными направлениями (по возрастанию/убыванию) для каждого критерия.
  • Когда строите интерактивные отчёты и дашборды, где разные представления должны жить рядом.

Пример в этой статье: список продаж по регионам со столбцами «Фамилия», «Штат», «Количество продаж», «Выручка».

Таблица Excel с четырьмя заполненными столбцами.

Базовое использование SORTBY — шаг за шагом

Чтобы отсортировать всех сотрудников по колонке «Штат»:

  1. Выберите ячейку F2.
  2. Введите в ячейку или в строку формул:
=SORTBY(A2:D16,B2:B16)
  1. Нажмите Enter.

Функция сортирует массив A2:D16 по значениям в B2:B16 по возрастанию (A→Z) по умолчанию. Результат выводится в виде динамического массива — Excel «выплескивает» (spill) отсортированную таблицу в соседние ячейки.

Таблица Excel, организованная функцией SORTBY.

Важно: динамический массив может вызвать ошибку #SPILL!, если в месте вывода уже есть данные. Освободите диапазон или поместите формулу в пустую область.

Сортировка по нескольким критериям

Чтобы отсортировать сначала по штату, затем по количеству продаж (внутри одного штата — от большего к меньшему):

  1. Выберите ячейку F2 (или K2, если хотите оставить первую версию).
  2. Введите:
=SORTBY(A2:D16,B2:B16,1,C2:C16,-1)
  1. Нажмите Enter.

Здесь синтаксис такой: SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], …).

  • array — основной диапазон (A2:D16).
  • by_array1 — первый ключ сортировки (B2:B16).
  • sort_order1 — направление: 1 = возрастание, -1 = убывание.

Каждый by_array должен иметь ровно столько элементов, сколько строк в array; иначе Excel вернёт ошибку #VALUE!. Нельзя объединять несколько столбцов в одну by_array как B2:C16 — это вызовет #REF!, потому что Excel не поймёт порядок критериев внутри объединённого диапазона.

Таблица Excel с более сложной сортировкой по двум столбцам.

Подробное объяснение частых ошибок

  • #SPILL! — место вывода массива занято. Убедитесь, что справа/внизу диапазон свободен.
  • #REF! — указаны некорректные диапазоны (например, объединили ключи: B2:C16). Каждый ключ должен быть отдельным диапазоном одной строки или одного столбца.
  • #VALUE! — длина одного из by_array не соответствует длине array; либо указан недопустимый sort_order (не 1 и не -1).

Практические шаблоны и продвинутые приёмы

  1. Топ-N по каждой группе (Пример: топ-3 продавца по каждому штату)
  • Комбинируем SORTBY + FILTER + INDEX/SEQUENCE. Идея: для каждого штата фильтровать строки и брать первые N.

Мини-шаблон (псевдо-алгоритм):

  • Получаем список уникальных штатов: UNIQUE(B2:B16).
  • Для каждого штата применяем FILTER(array, B2:B16=штат).
  • Сортируем этот отфильтрованный набор по продажам DESC: SORTBY(filtered, Crange, -1).
  • Берём первые N строк с помощью INDEX или SEQUENCE.

Это можно автоматизировать в отдельной таблице с формулами, но конкретная формула зависит от структуры и версии Excel.

  1. Сортировка с сохранением оригинальной последовательности (частичная сортировка)

Если нужно получить отсортированный вид, но при равных значениях ключа сохранить исходный порядок, добавьте вспомогательный ключ — порядковый номер строки (например, SEQUENCE или COLUMN/ROW) как последний критерий сортировки.

  1. Комбинация с FILTER для динамических отчётов

Чтобы показать только строки с продажами > X и отсортировать результат:

=SORTBY(FILTER(A2:D16,C2:C16>10),C2:C16,-1)

Важно: внутри FILTER и SORTBY используйте согласованные диапазоны.

Альтернативные подходы и когда их выбрать

  • Стандартная функция SORT — подходит для простых одно- или двухкритериальных случаев, но требует ручной последовательности аргументов и чаще применяется к одному столбцу.
  • Инструмент “Сортировка и фильтр“ (Data → Sort) — удобен для одноразовой сортировки исходных данных, но меняет оригинал и неудобен при необходимости поддерживать несколько представлений одновременно.
  • Сводные таблицы (PivotTable) — идеальны для агрегации и интерактивной группировки (например, суммы по штатам), но не дают явного упорядоченного списка строк с нестандартной логикой сортировки внутри групп.
  • Power Query — мощен для подготовки и трансформации данных (ETL), особенно при больших объёмах; хорошо, когда нужно записать процесс трансформации как шаги, применяемые к входящим данным.

Выбор: если нужен живой отсортированный вид рядом с исходными данными — SORTBY; если нужны преобразования и загрузка в отчёт — Power Query; для одноразовой смены порядка — встроенный «Sort».

Ментальные модели и эвристики

  • Модель «представление над данными»: представляйте SORTBY как «слой отображения», который не трогает оригинал.
  • Правило одинаковой длины: все by_array должны совпадать по размеру с основным array.
  • Явное направление для каждого ключа: при нескольких критериях всегда указывайте sort_order, чтобы избежать неоднозначности.

Роль‑ориентированные чеклисты

Аналитик:

  • Проверить размеры array и by_array
  • Явно указать sort_order для каждого ключа
  • Проверить на #SPILL!, #REF!, #VALUE!

Тот, кто готовит отчёт:

  • Разместить вывод в пустой области таблицы
  • Добавить вспомогательные столбцы при необходимости
  • Использовать FILTER перед SORTBY для поднаборов

Разработчик дашборда:

  • Автоматизировать сбор уникальных групп (UNIQUE)
  • Зафиксировать порядок ключей сортировки в документе требований
  • Тестировать с граничными данными (пустые значения, одинаковые значения)

Критерии приёмки

  • Формула возвращает ожидаемое количество строк и столбцов.
  • Для одинаковых входных данных результаты устойчивы (при необходимости — добавлен вспомогательный ключ для стабильного порядка).
  • Нет ошибок (#SPILL!, #REF!, #VALUE!) при тестовом запуске на реальных данных.
  • Диапазон вывода не перезаписывает важные данные.

Тестовые сценарии и приёмы проверки

  1. Базовый тест: обычные данные без пустых ячеек — ожидаемая сортировка.
  2. Несовпадение длины by_array — должен быть #VALUE!.
  3. Объединённый ключ (B2:C16) — должен быть #REF!.
  4. Занятое место вывода — #SPILL!.
  5. Равные значения по ключам — проверьте стабильность (если важна, добавьте порядковый ключ).

Когда SORTBY не подойдёт — контрпримеры

  • Нужна агрегация (суммы/средние) по группам — лучше PivotTable или Power Query.
  • Объём данных очень большой и требуется одна оптимизированная ETL‑операция — Power Query/SQL более эффективны.
  • Требуется фиксированная (не динамическая) копия отсортированных данных для отправки другому пользователю — может потребоваться копирование и вставка значений (Paste Values).

SOP: быстрое руководство по созданию надёжного представления SORTBY

  1. Скопируйте структуру таблицы в пустую область листа для вывода.
  2. Убедитесь, что array и все by_array имеют одинаковое количество строк.
  3. Укажите явные sort_order (1 или -1) для всех by_array.
  4. Протестируйте на крайних случаях (пустые значения, дубликаты, строки в разном порядке).
  5. Если планируете совместное использование — зафиксируйте логику сортировки в документации отчёта.

Совместимость и переход от старых решений

  • Для пользователей старых версий Excel (без динамических массивов) SORTBY может быть недоступен. В таких случаях используйте комбинации INDEX/MATCH/SMALL/LARGE или Power Query.
  • При миграции отчётов от ручной сортировки к SORTBY: сначала создайте в рабочем листе копию текущей логики, затем замените её на формулы SORTBY и прогоните тесты на равенство результатов.

Глоссарий — однострочные определения

  • array — основной диапазон, который будет возвращён и отсортирован.
  • by_array — диапазон, по которому выполняется сортировка.
  • sort_order — направление сортировки: 1 = возрастание, -1 = убывание.
  • spill — поведение динамических массивов, когда результат «выплёскивается» в соседние ячейки.

Быстрый чек-лист устранения ошибок

  • Если #SPILL! — очистите диапазон справа/внизу.
  • Если #REF! — проверьте, не объединяли ли вы несколько столбцов в by_array.
  • Если #VALUE! — проверьте длины массивов и корректность sort_order.

Короткое резюме

SORTBY — лёгкий способ создать отдельные, динамические и многоуровневые представления данных в Excel без изменения исходного набора. Она отлично подходит для интерактивных отчётов и аналитики, но не заменяет инструменты агрегации и ETL в случаях сложной подготовки данных.

Примечания

  • Всегда указывайте sort_order при нескольких критериях.
  • Убедитесь, что место для вывода массива свободно.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство