Как отсортировать по словам в Excel: от простого к сложному

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

Вы когда-нибудь пытались отсортировать список фамилий по алфавиту, но Excel упрямо игнорировал вторую часть двойных фамилий? Или нужны были только строки с определённым словом в середине ячейки, а программа сортировала всё подряд? Проблема в том, что Excel по умолчанию анализирует ячейки как единое целое — он не умеет автоматически выделять отдельные слова, если их не разделить по столбцам.

В этой статье разберём 5 рабочих методов, как заставить программу сортировать данные именно по нужным словам — от простых фильтров до формул с регулярными выражениями. А ещё выясним, почему иногда сортировка "ломается" и как этого избежать. Например, знали ли вы, что Сортировка → По цвету ячейки может помочь выделить строки с ключевым словом, если предварительно их подсветить? Об этом и многом другом — далее.

Для начала определитесь, что именно вам нужно:

  • 🔹 Сортировка по первому слову в ячейке (например, по имени в списке "Иванов Петр Сидорович")
  • 🔹 Упорядочивание по второму/третьему слову (фамилия в формате "Сидорович Петр Иванович")
  • 🔹 Фильтрация строк, содержащих конкретное слово (например, только товары с пометкой "акция")
  • 🔹 Сортировка по части слова (например, по домену в email: @gmail.com, @yandex.ru)
📊 Как часто вам приходится сортировать текстовые данные в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Очень редко

Метод 1: Сортировка по первому слову (стандартный способ)

Если слова в ячейках разделены пробелами, а нужно отсортировать данные по первому слову, достаточно стандартных инструментов Excel. Этот метод работает для 90% задач с текстовыми списками — от сортировки имён до упорядочивания товарных наименований.

Инструкция:

  1. Выделите диапазон ячеек с данными (включая заголовки столбцов).
  2. Перейдите на вкладку ГлавнаяСортировка и фильтрНастраиваемая сортировка.
  3. В окне Сортировка выберите столбец для сортировки и параметр Значения.
  4. Укажите порядок (От А до Я или От Я до А) и нажмите OK.

Важно! Excel будет анализировать текст слева направо, поэтому строки "Абрикос свежий" и "Абрикос сушёный" окажутся рядом, а "Банан" — в другом конце списка. Если нужно сортировать по второму слову (например, по категории "свежий"/"сушёный"), читайте следующий раздел.

Убедитесь, что в ячейках нет лишних пробелов (используйте ТРИМ())

Проверьте регистр: "Excel" и "excel" будут отсортированы по-разному

Объедините данные из нескольких столбцов, если нужно сортировать по составному критерию (функция СЦЕПИТЬ() или CONCAT())

-->

Метод 2: Сортировка по второму/третьему слову (с вспомогательным столбцом)

Допустим, у вас есть список полных имён в формате "Фамилия Имя Отчество", и нужно отсортировать его по имени (второму слову). Стандартная сортировка здесь не поможет — придётся выделять нужное слово в отдельный столбец.

Самый надёжный способ — использовать функцию ПСТР() (или MID() в английской версии) вместе с ПОИСК() для поиска пробелов. Формула для извлечения второго слова:

=ПСТР(A2; ПОИСК(" "; A2) + 1; ПОИСК(" "; A2; ПОИСК(" "; A2) + 1) - ПОИСК(" "; A2) - 1)

Разберём на примере ячейки A2 со значением "Сидоров Александр Петрович":

  1. ПОИСК(" "; A2) находит позицию первого пробела (7-й символ).
  2. ПОИСК(" "; A2; ПОИСК(" "; A2) + 1) ищет второй пробел (17-й символ).
  3. ПСТР() извлекает подстроку между первым и вторым пробелом ("Александр").

После добавления вспомогательного столбца с этой формулой сортируйте данные по нему как обычно. Для третьего слова используйте ту же логику, но ищите третий пробел с помощью вложенных функций ПОИСК().

Альтернатива для новых версий Excel

В Excel 365 и 2021 доступна функция ТЕКСТРАЗД() (или TEXTSPLIT()), которая разбирает текст по разделителю (пробелу) и возвращает массив слов. Например:

=ТЕКСТРАЗД(A2; " ")

Эта функция вернёт три слова в отдельных ячейках, если протянуть её вправо. Затем можно сортировать по нужному столбцу.

Метод 3: Фильтрация строк по ключевому слову (без сортировки)

Если задача — не упорядочить данные, а просто показать только строки с определённым словом, используйте Фильтр или Расширенный фильтр. Это быстрее, чем сортировка, и не требует изменений в исходной таблице.

Пошаговая инструкция:

  1. Выделите диапазон с заголовками.
  2. На вкладке Данные нажмите Фильтр (или Ctrl+Shift+L).
  3. Щёлкните по стрелке в заголовке столбца и выберите Текстовые фильтрыСодержит.
  4. Введите ключевое слово (например, "акция") и нажмите OK.

Для сложных условий (например, "содержит слово 'акция' ИЛИ 'распродажа'") используйте Расширенный фильтр:

  • 🔹 Создайте отдельную область с критериями (например, в ячейках D1:E2):
Заголовок столбцаКритерий
=Наименование=акция
=Наименование=распродажа

Затем перейдите в ДанныеРасширенный фильтр и укажите исходный диапазон и диапазон критериев.

Метод 4: Сортировка по части слова (с использованием формул)

Иногда требуется сортировать не по целому слову, а по его части — например, по домену в email (@gmail.com) или по первым трём буквам артикула. Для этого комбинируйте функции ПОИСК(), ПСТР() и ЕЧИСЛО().

Пример: отсортируем список email по домену. Формула для извлечения домена:

=ПСТР(A2; ПОИСК("@"; A2) + 1; 100)

Здесь ПОИСК("@"; A2) находит позицию символа "@", а ПСТР() извлекает всё, что идёт после него (длина подстроки указана с запасом — 100 символов). Затем сортируйте данные по вспомогательному столбцу с этой формулой.

Для сортировки по первым N символам используйте:

=ЛЕВСИМВ(A2; 3)

Эта формула вернёт первые 3 символа ячейки A2. Полезно для упорядочивания артикулов типа "ART-001", "ART-002", где важна префиксная часть.

⚠️ Внимание: Если в ячейках встречаются ошибки (например, email без "@"), формулы вернут #ЗНАЧ!. Чтобы избежать этого, оберните их в ЕЧИСЛО():
=ЕСЛИОШИБКА(ПСТР(A2; ПОИСК("@"; A2) + 1; 100); "")

Метод 5: Продвинутая сортировка с Power Query

Для обработки больших объёмов данных (тысячи строк) или сложных правил сортировки используйте Power Query — инструмент ETL (Extract-Transform-Load), встроенный в Excel 2016 и новее. Он позволяет:

  • 🔹 Разбивать текст на слова по любому разделителю.
  • 🔹 Фильтровать строки по нескольким ключевым словам.
  • 🔹 Сортировать по нескольким критериям одновременно (например, сначала по городу, затем по фамилии).

Алгоритм действий:

  1. Выделите исходную таблицу и нажмите ДанныеИз таблицы/диапазона (в группе Получить и преобразовать данные).
  2. В открывшемся окне Power Query выберите столбец с текстом, затем на вкладке Преобразовать нажмите Разделить столбецПо разделителю.
  3. Укажите разделитель (пробел, запятая и т. д.) и выберите, на сколько столбцов разбить текст.
  4. Отсортируйте данные по нужному столбцу, затем нажмите Закрыть и загрузить.

Преимущество Power Query в том, что все преобразования сохраняются как шаги, и их можно повторно применить к обновлённым данным. Например, если вам ежемесячно приходит отчёт с ФИО в формате "Иванов П.С.", один раз настроенный запрос будет автоматически разбивать инициалы на отдельные столбцы.

Типичные ошибки и как их избежать

Даже опытные пользователи Excel сталкиваются с проблемами при сортировке текстовых данных. Вот 5 самых распространённых ошибок и способы их решения:

ОшибкаПричинаРешение
Сортировка игнорирует словаЛишние пробелы в начале/конце ячеекПримените ТРИМ() ко всему столбцу
Числа и текст сортируются отдельноExcel воспринимает их как разные типы данныхПреобразуйте числа в текст с помощью ТЕКСТ()
Строки с ошибками (#Н/Д) оказываются в началеПо умолчанию ошибки имеют приоритетИспользуйте ЕСЛИОШИБКА() для замены ошибок на пустые ячейки
Сортировка по второму слову работает неправильноВ ячейках разное количество пробеловЗамените множественные пробелы на одиночные: =ПОДСТАВИТЬ(A2; " "; " ")
После сортировки "слетают" формулыСсылки в формулах не абсолютныеИспользуйте $ для фиксации ссылок (например, $A$2)

Ещё одна частая проблема — сортировка по регистру. По умолчанию Excel различает заглавные и строчные буквы: "Андрей" и "андрей" окажутся в разных частях списка. Чтобы этого избежать, добавьте вспомогательный столбец с функцией =ПРОПИСН(A2) или =СТРОЧН(A2) и сортируйте по нему.

⚠️ Внимание: Если вы сортируете таблицу с объединёнными ячейками, Excel может выдать ошибку или сортировать только часть данных. Перед сортировкой обязательно разъедините ячейки (выделите их → правая кнопка → Отменить объединение ячеек).

FAQ: Ответы на частые вопросы

Можно ли отсортировать данные по слову, которое находится в конце ячейки?

Да, для этого используйте комбинацию функций ПСТР(), ПОИСК() и ДЛСТР(). Формула для извлечения последнего слова:

=ПСТР(A2; ПОИСК("~"; ПОДСТАВИТЬ(A2; " "; "~"; СЧЁТЗ(" " & A2 & " ")-1)) + 1; 100)

Здесь символ ~ используется как временный разделитель для поиска последнего пробела. Альтернатива — функция ТЕКСТПОСЛЕ() в Excel 365:

=ТЕКСТПОСЛЕ(A2; " "; -1)
Как отсортировать список по длине слова (например, сначала короткие фамилии, затем длинные)?

Добавьте вспомогательный столбец с функцией =ДЛСТР(A2) для подсчёта символов или =СЧЁТЗ(ПОДСТАВИТЬ(A2; " "; "~"))-1 для подсчёта слов. Затем сортируйте по этому столбцу.

Почему после сортировки по второму слову некоторые строки остаются на месте?

Скорее всего, в этих строках нет второго слова (например, ячейка содержит только одно слово или пустая). Добавьте проверку на наличие пробела:

=ЕСЛИ(ЕЧИСЛО(ПОИСК(" "; A2)); ПСТР(...); "")

Это гарантирует, что формула вернёт пустое значение для ячеек без второго слова, и они окажутся в конце списка.

Можно ли автоматизировать сортировку по словам с помощью макроса?

Да, вот пример VBA-кода для сортировки по второму слову в выделенном диапазоне:

Sub SortBySecondWord()

Dim rng As Range, cell As Range

Dim arr() As String, i As Integer

Set rng = Selection

For Each cell In rng

arr = Split(cell.Value, " ")

If UBound(arr) >= 1 Then cell.Offset(0, 1).Value = arr(1)

Next cell

rng.Sort Key1:=rng.Offset(0, 1), Order1:=xlAscending

rng.Offset(0, 1).ClearContents

End Sub

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

Как отсортировать данные по слову, которое может быть в любом месте ячейки (не обязательно второе или третье)?

Используйте функцию ЕСЛИ() с ПОИСК(), чтобы проверить наличие слова, и присваивайте ему приоритет. Например, чтобы строки со словом "срочно" были вверху:

=ЕСЛИ(ЕЧИСЛО(ПОИСК("срочно"; A2)); 1; 0)

Затем сортируйте по этому столбцу по убыванию. Для нескольких ключевых слов используйте вложенные ЕСЛИ() или ВПР().