Сортировка данных в Excel – это очень полезный инструмент, который позволяет улучшать восприятие информации, особенно при больших объемах. В данном уроке мы научимся применять сортировку, узнаем основные команды, а также познакомимся с типами сортировки в Excel.

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

При сортировке данных в Excel в первую очередь необходимо решить, как применять сортировку: ко всему листу (таблице) или только к определенному диапазону ячеек.

Как сделать сортировку листа (таблицы, списка) в Excel

В следующем примере мы отсортируем форму заказа футболок по Фамилиям (Столбец С) и расположим их в алфавитном порядке.


При сортировке таблицы или списка в Excel необходимо, чтобы они были отделены от посторонних данных на листе как минимум одной строкой или столбцом. В противном случае в сортировке будут участвовать посторонние данные.

Как сделать сортировку диапазона в Excel

В следующем примере мы выберем отдельную небольшую таблицу на листе Excel, чтобы отсортировать количество футболок, заказанных в определенные дни.


Если сортировка в Excel выполняется неправильно, то в первую очередь проверьте верно ли введены значения. Даже небольшая опечатка может привести к проблемам при сортировке больших таблиц. В следующем примере мы забыли поставить дефис в ячейке A18, что привело к неточной сортировке.

Для упорядочения и анализа данных в списке применяется команда "Сортировка". "Сортировка" позволяет переставлять записи в определенном порядке на основании значений одного или нескольких столбцов или переставлять столбцы на основании значений в строках.

Существуют три типа сортировки:

  • в возрастающем порядке
  • в убывающем порядке
  • в пользовательском порядке

Сортировка списка по возрастанию означает упорядочение списка в порядке: от 0 до 9, пробелы, символы, буквы от А до Z или от А до Я, а по убыванию - в обратном порядке. Пользовательский порядок сортировки задается пользователем в окне диалога "Параметры" на вкладке "Списки", которое открывается командой "Параметры" в меню "Сервис", а отображается этот порядок сортировки в окне диалога "Параметры сортировки" (Рис. 1).


Рис. 1.

Для отображения окон диалога "Сортировка диапазона", "Параметры сортировки" и выбора порядка сортировки столбцов или строк необходимо выделить ячейку списка и выполнить команду "Данные" - "Сортировка". На экране появится окно "Сортировка диапазона" при нажатии в нем кнопки "Параметры" появится окно "Параметры сортировки".

В окне "Параметры сортировки" (Рис. 2) из списка "Сортировка по первичному ключу" можно выбрать пользовательский порядок сортировки, а также установить переключатель "Сортировать" в положение: "строки диапазона" или "столбцы диапазона".


Рис. 2.

В окне "Сортировка диапазона" (Рис. 3) можно установить переключатель в положение: "по возрастанию" или "по убыванию", а также выбрать положение переключателя идентификации диапазона данных.


Рис. 3.

Если подписи отформатированы в соответствии с вышеизложенными требованиями, то переключатель по умолчанию устанавливается в положение "подписям". Кроме того, в списках: "Сортировать по", "Затем по" и "В последнюю очередь, по" можно выбрать заголовки столбцов, по которым осуществляется сортировка. Таким образом, сортировку записей можно осуществлять по одному, двум или трем столбцам.

Мгновенная сортировка записей по одному столбцу осуществляется при выделении в нем ячейки нажатием кнопки "Сортировка по возрастанию" или "Сортировка по убыванию" на стандартной панели инструментов. В результате редактор переставит записи в соответствии с выбранным порядком.

Алгоритм сортировки записей по одному столбцу следующий

  • Выделите ячейку в списке, который требуется отсортировать;
  • Выполните команду "Данные" - "Сортировка", открывается окно диалога "Сортировка диапазона";
  • В списке "Сортировать по" выберите заголовок того столбца, по которому будете осуществлять сортировку;
  • Выберите тип сортировки "По возрастанию" или "По убыванию";

На рисунках 4 и 5 представлены фрагменты списка до сортировки, и после сортировки "по возрастанию" по одному столбцу "№ склада".


Рис. 4.


Рис. 5.

При сортировке списка по нескольким столбцам, строки с одинаковыми значениями в первом сортируемом столбце ("Сортировать по"), сортируются в порядке, который определяется заголовком, указанным в списке "Затем по", а строки с одинаковыми значениями в первых двух сортируемых столбцах сортируются по заголовку, указанному в списке "В последнюю очередь, по". Другими словами столбцы, указанные в списках "Затем по" и "В последнюю очередь по" не влияют на порядок сортировки в первом сортируемом столбце, а устраняют неоднозначность в отсортированном списке.

Алгоритм сортировки записей по двум или более столбцам следующий

  • Выделите ячейку в списке;
  • Выберите заголовок для сортировки в списке "Сортировать по" и установите порядок сортировку "по возрастанию" или "по убыванию";
  • Откройте список "Затем по", установите заголовок другого столбца для сортировки и задайте сортировку "по возрастанию" или "по убыванию";
  • Раскройте список "В последнюю очередь по" и выберите заголовок третьего столбца для сортировки и укажите сортировку "по возрастанию" или "по убыванию";
  • Нажмите кнопку ОК для выполнения сортировки.

Алгоритм сортировки данных по строкам

Для перестановки столбцов в списке необходимо выполнить сортировку на основе значений в строках:

  • Укажите ячейку в сортируемом списке;
  • В меню "Данные" выберите команду "Сортировка";
  • В окне "Сортировка диапазона" нажмите кнопку "Параметры";
  • Установите переключатель "Сортировать" в положение "столбцы диапазона" и нажмите кнопку OK;
  • В окне "Сортировка диапазона" выберите строки, по которым требуется отсортировать столбцы в списках "Сортировать по", "Затем по", "В последнюю очередь, по".
  • Нажмите кнопку ОК для выполнения сортировки

В некоторых случаях требуется нестандартный порядок сортировки списков, например сортировка данных по месяцам в календарном порядке или сортировка записей в порядке, созданном пользователем. Создание пользовательского порядка осуществляется в окне "Параметры" на вкладке "Списки", которое можно вызвать командой "Сервис" - "Параметры". Пользовательский порядок сортировки можно применить только для заголовка столбца, указанного в раскрывающем списке "Сортировать по"

Алгоритм сортировки в пользовательском порядке

  • Укажите ячейку в списке;
  • В меню "Данные" выберите команду "Сортировка";
  • Выберите в списке "Сортировать по" заголовок столбца для сортировки;
  • Установите переключатель в положение "по возрастанию" или "по убыванию";
  • Нажмите кнопку "Параметры";
  • В раскрывающем списке "Порядок сортировки по первому ключу" выберите необходимый порядок сортировки и нажмите кнопку OK;
  • Нажмите кнопку ОК в окне "Сортировка диапазона" для завершения сортировки.

Сортировка в Эксель – это встроенная функция, с помощью которой пользователь сможет расположить данные в столбцах на листе в удобном порядке для их последующего анализа.

Вы сможете отсортировать информацию в алфавитном порядке, по возрастанию или убыванию значений, по дате или по значкам, по цвету текста или ячейки. Именно об этом и пойдет речь в данной статье.

Чисел

Здесь все достаточно просто. Для примера возьмем следующую таблицу. Сделаем в ней сортировку данных по столбцу С . Для этого выделяем его и на вкладке «Главная» кликаем на кнопочку «Сортировка и фильтр» . В следующем меню выберите или «… от минимального к максимальному» , или «… от максимального к минимальному» . Выберем второй вариант.

Теперь у нас данные в С размещены в порядке убывания.

У меня столбец С расположен между двумя другими, которые заполнены данными. В этом случае, Excel считает, что выделенный столбец – это часть таблицы (и считает правильно). В результате появилось следующее сообщение. Поскольку мне нужно сделать сортировку конкретно для Класса, выделяю маркером пункт «… в пределах указанного выделения» и нажимаю «Сортировка» .

По алфавиту

Она делается по тому же принципу, как было описано выше. Выделяем нужный диапазон, и нажимаем кнопочку «Сортировка и фильтр» . В выпадающем меню пункты изменились. Выберите или от «А до Я» , или от «Я до А» .

Список имен в примере отсортирован по алфавиту.

По дате

Чтобы отсортировать даты в Эксель, сначала обратите внимание, какой формат установлен для тех ячеек, в которых они записаны. Выделите их и на вкладке «Главная» посмотрите на группу «Число» . Лучше всего подойдет или формат «Дата» , краткий или длинный, или «(все форматы)» – дата может быть записана различными способами: ДД.ММ.ГГГГ, ДД.МММ, МММ.ГГ.

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

После этого выделяем нужный диапазон ячеек и жмем на кнопочку «Сортировка и фильтр» . В меню можно выбрать или «от старых к новым» , или «от новых к старым» .

По цвету ячейки или текста

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

Выделяем весь диапазон, кликаем на кнопочку «Сортировка и фильтр» и выбираем из меню «Настраиваемая…» .

В следующем окне, уберите галочку с поля , если Вы выделили их без верхней строки, которая является шапкой таблицы. Затем выбираем столбец, по которому будем сортировать, в примере это «I» . В разделе «Сортировка» из выпадающего списка выбираем «Цвет шрифта» . В разделе порядок выбираем «красный цвет» – «Сверху» . Это мы отсортировали числа красного цвета.

Теперь нужно, чтобы в столбце шли числа зеленого цвета. Нажмите на кнопочку «Добавить уровень» . Все настройки те же, только выберите «зеленый цвет» . Нажмите «ОК» .

Наш столбец отсортирован следующим образом.

Как видите, числа идут не по порядку. Давайте отсортируем числа в порядке возрастания. Выделяем столбец, нажимаем «Сортировка и фильтр» «Настраиваемая …» . В открывшемся окне нажмите на кнопку «Добавить уровень» . Столбец остается «I» , в следующем поле выбираем по «Значению» , порядок «По возрастанию» . Нажмите «ОК» .

Теперь наш столбец отсортирован и по цвету текста и в порядке возрастания данных.

Аналогичным образом сортируются данные и по цвету ячейки, только в разделе «Сортировка» выбирайте из списка «Цвет ячейки» .

Таблицы

Если у Вас есть таблица, в которой нужно выполнить сортировку сразу по нескольким столбцам, делаем следующее. Выделяем весь диапазон ячеек таблицы вместе с шапкой. Кликаем по кнопочке «Сортировка и фильтр» и выбираем «Настраиваемая …» .

Давайте отсортируем класс в порядке возрастания, и таким же образом средний бал.

В окне сортировки ставим галочку в поле «Мои данные содержат заголовки» . В разделе «Столбец» выбираем из списка «Класс» , сортировка по «Значению» , а порядок «По возрастанию» .

Чтобы сделать все тоже самое по среднему балу, нажмите на кнопочку «Добавить уровень» . В разделе «Столбец» выбираем «Средн.бал» . Нажмите «ОК» .

Данные в таблице отсортированы.

Теперь в столбце «Имя» закрасим ячейки с мальчиками в синий цвет, ячейки с девочками в розовый. Чтобы не делать это для каждой ячейки в отдельности, прочтите статью, как выделить ячейки в Excel – в ней написано, как выделить несмежные ячейки.

Выполним сортировку этого столбца по цвету ячейки: сначала будут девочки, потом мальчики. Снова выделяем всю таблицу, жмем «Сортировка» – «Настраиваемая …» .

В открывшемся окне уже есть два уровня, которые мы сделали раньше. Эти уровни имеют приоритет – у первого самый большой, у второго меньше и так далее. То есть, если мы хотим, чтобы сначала выполнилась сортировка данных в таблице девочки/мальчики, затем по классу, а затем по среднему балу – нужно в таком порядке и расставить уровни.

Нажимаем на кнопку «Добавить уровень» . В разделе «Столбец» выбираем «Имя» , сортировка – «Цвет ячейки» , порядок – «розовый» , «Сверху» .

Теперь с помощью стрелочек перемещаем данную строку наверх списка. Нажмите «ОК» .

Таблица с отсортированными данными выглядит следующим образом.

При сортировке данных в Excel Вы можете столкнуться с необходимостью отсортировать данные одновременно по нескольким столбцам. Вот как раз сегодня я расскажу как это можно сделать.

За пример возьмем таблицу, в которой имеется список продуктов с их стоимостью и сроком годности. Задача - отсортировать продукты в алфавитном порядке и по сроку годности.

Выделяем все ячейки таблицы, к которой мы будем применять сортировку. В нашем случае, можно просто встать на любую ячейку внутри диапазона. Далее на вкладке Главная щелкаем по иконке Сортировка и фильтр и из выпадающего меню выбираем пункт Настраиваемая сортировка .

Откроется окно настройки сортировки. Первым делом нужно убедиться, что стоит галочка Мои данные содержат заголовки . Эта настройка позволяет убрать первую строку из диапазона и не участвовать ей в будущей фильтрации.

Теперь будем добавлять столбцы, по которым будет идти сортировка. Первым, в нашем случае, идет столбец Продукты . В поле Сортировка выставляем Значение и устанавливаем Порядок от А до Я .

Теперь продукты будут сортироваться сначала по первому столбцу и дополнительно по второму. При этом вторая сортировка не оказывает влияние на первую. Таким же образом можно осуществлять сортировку и по большему количеству столбцов.

Кстати, сортировка может также осуществляться и по строкам. Как это сделать я расскажу в следующем уроке.

В двух предыдущих уроках мы удаляли дубликаты. Прочитать об этом можно и . В этом уроке мы будем осуществлять поиск дубликатов .

В этом уроке расскажу как закрепить шапку на каждой странице Excel. Это может понадобиться в том случае, если вы работаете с большими по размеру таблицами. Обычно при их распечатке выходят документы с большим количеством страниц и для того, чтобы было удобно с ними работать, необходимо сохранить шапку таблицы на каждом листе.

В этом уроке расскажу как поставить в начале ячейки знак плюс или ноль перед числом в Excel. Давайте представим ситацию, что вам необходимо ввести в ячейку номер телефона в формате "+7 987...". В обычном состоянии программа Эксель просто удалит этот знак плюс.

Отсортируем формулами таблицу, состоящую из 2-х столбцов. Сортировку будем производить по одному из столбцов таблицы (решим 2 задачи: сортировка таблицы по числовому и сортировка по текстовому столбцу). Формулы сортировки настроим так, чтобы при добавлении новых данных в исходную таблицу, сортированная таблица изменялась динамически. Это позволит всегда иметь отсортированную таблицу без вмешательства пользователя. Также сделаем двухуровневую сортировку: сначала по числовому, затем (для повторяющихся чисел) - по текстовому столбцу.

Пусть имеется таблица, состоящая из 2-х столбцов. Один столбец – текстовый: Список фруктов ; а второй - числовой Объем Продаж (см. файл примера ).

Задача1 (Сортировка таблицы по числовому столбцу)

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

Для наглядности величины значений в столбце Объем Продаж выделены с помощью (). Также желтым выделены повторяющиеся значения.

Примечание : Задача сортировки отдельного столбца (списка) решена в статьях и .

Решение1

Если числовой столбец гарантировано не содержит значений, то задача решается легко:

  • Числовой столбец отсортировать функцией НАИБОЛЬШИЙ() (см. статью );
  • Функцией ВПР() или связкой функций ИНДЕКС()+ПОИСКПОЗ() выбрать значения из текстового столбца по соответствующему ему числовому значению.

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

Поэтому механизм сортировки придется реализовывать по другому.

ИНДЕКС(Продажи;
ОКРУГЛ(ОСТАТ(НАИБОЛЬШИЙ(
--(СЧЁТЕСЛИ(Продажи;"<"&Продажи)&","&ПОВТОР("0";3-ДЛСТР(СТРОКА(Продажи)-СТРОКА($E$6)))&СТРОКА(Продажи)-СТРОКА($E$6));
СТРОКА()-СТРОКА($E$6));1)*1000;0)
)

Данная формула сортирует столбец Объем продаж (динамический диапазон Продажи ) по убыванию. Пропуски в исходной таблице не допускаются. Количество строк в исходной таблице должно быть меньше 1000.

Разберем формулу подробнее:

  • Формула СЧЁТЕСЛИ(Продажи;"<"&Продажи) возвращает массив {4:5:0:2:7:1:3:5}. Это означает, что число 64 (из ячейки B7 исходной таблицы, т.е. первое число из диапазона Продажи ) больше 4-х значений из того же диапазона; число 74 (из ячейки B8 исходной таблицы, т.е. второе число из диапазона Продажи ) больше 5-и значений из того же диапазона; следующее число 23 - самое маленькое (оно никого не больше) и т.д.
  • Теперь вышеуказанный массив целых чисел превратим в массив чисел с дробной частью, где в качестве дробной части будет содержаться номер позиции числа в массиве: {4,001:5,002:0,003:2,004:7,005:1,006:3,007:5,008}. Это реализовано выражением &","&ПОВТОР("0";3-ДЛСТР(СТРОКА(Продажи)-СТРОКА($E$6)))&СТРОКА(Продажи)-СТРОКА($E$6)) Именно в этой части формулы заложено ограничение о не более 1000 строк в исходной таблице (см. выше). При желании его можно легко изменить, но это бессмысленно (см. ниже раздел о скорости вычислений).
  • Функция НАИБОЛЬШИЙ() сортирует вышеуказанный массив.
  • Функция ОСТАТ() возвращает дробную часть числа, представляющую собой номера позиций/1000, например 0,005.
  • Функция ОКРУГЛ() , после умножения на 1000, округляет до целого и возвращает номер позиции. Теперь все номера позиций соответствуют числам столбца Объемы продаж, отсортированных по убыванию.
  • Функция ИНДЕКС() по номеру позиции возвращает соответствующее ему число.

Аналогичную формулу можно написать для вывода значений в столбец Фрукты =ИНДЕКС(Фрукты;ОКРУГЛ(...))

В файле примера , из-за соображений скорости вычислений (см. ниже), однотипная часть формулы, т.е. все, что внутри функции ОКРУГЛ() , вынесена в отдельный столбец J . Поэтому итоговые формулы в сортированной таблице выглядят так: =ИНДЕКС(Фрукты;J7) и =ИНДЕКС(Продажи;J7)

Также, изменив в формуле массива функцию НАИБОЛЬШИЙ() на НАИМЕНЬШИЙ() получим сортировку по возрастанию.

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

Тестируем

Теперь добавим новую строку в исходную таблицу. В динамически сортируемых таблицах мы должны получить соответствующую сортировку.

1. В ячейку А15 исходной таблицы введите слово Морковь ;
2. В ячейку В15 введите Объем продаж Моркови = 25;
3. После ввода значений, в столбцах D и Е автоматически будет отображена отсортированная по убыванию таблица;
4. В сортированной таблице новая строка будет отображена предпоследней.

Скорость вычислений формул

На "среднем" по производительности компьютере пересчет пары таких формул массива, расположенных в 100 строках, практически не заметен. Для таблиц с 300 строками время пересчета занимает 2-3 секунды, что вызывает неудобства. Либо необходимо отключить автоматический пересчет листа (Формулы/ Вычисления/ Параметры вычисления ) и периодически нажимать клавишу F9 , либо отказаться от использования формул массива, заменив их столбцами с соответствующими формулами, либо вообще отказаться от динамической сортировки в пользу использования стандартных подходов (см. следующий раздел).

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

Отсортируем строки исходной таблицы с помощью стандартного фильтра (выделите заголовки исходной таблицы и нажмите CTRL+SHIFT+L ). В выпадающем списке выберите требуемую сортировку.

Получим идентичный нашему вариант таблицы, но при добавлении в таблицу новых значений придется применять фильтр заново.

Также можно воспользоваться инструментом Сортировка (Данные/ Сортировка и Фильтр/ Сортировка ). Для этого нужно выделить все значения исходной таблицы не включая заголовок, вызвать инструмент Сортировка, выбрать столбец, по которому требуется сортировать и вариант сортировки.

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

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

Для сортировки таблицы придется создать 2 служебных столбца (D и E).

=СЧЁТЕСЛИ($B$7:$B$14;"<"&$B$7:$B$14)+1

Эта формула является аналогом для текстовых значений (позиция значения относительно других значений списка). Текстовому значению, расположенному ниже по алфавиту, соответствует больший "ранг". Например, значению Яблоки соответствует максимальный "ранг" 7 (с учетом повторов).

В столбце E введем обычную формулу:

=СЧЁТЕСЛИ($D$6:D6;D7)+D7

Эта формула учитывает повторы текстовых значений и корректирует "ранг". Теперь разным значениям Яблоки соответствуют разные "ранги" - 7 и 8. Это позволяет вывести список сортированных значений. Для этого используйте формулу (столбец G):

=ИНДЕКС($B$7:$B$14;ПОИСКПОЗ(СТРОКА()-СТРОКА($G$6);$E$7:$E$14;0))

Аналогичная формула выведет соответствующий объем продаж (столбец Н).

Задача 2.1 (Двухуровневая сортировка)

Теперь снова отсортируем исходную таблицу по Объему продаж. Но теперь для повторяющихся значений (в столбце А три значения 74), соответствующие значения выведем в алфавитном порядке.

Для этого воспользуемся результатами Задачи 1.1 и Задачи 2.

Подробности в файле примера на листе Задача2.