Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще…Меньше
Функция СОРТ сортирует содержимое диапазона или массива.
В этом примере используется отдельная сортировка по регионам, продавцам и продуктам с помощью формулы =СОРТ(A2:А17), скопированной в ячейки F2, H2 и J2.
Функция СОРТ возвращает отсортированный массив элементов в массиве. Возвращаемый массив имеет ту же форму, что и предоставленный аргумент массива.
=СОРТ(массив;[индекс_сортировки];[порядок_сортировки];[по_столбцу])
Аргумент |
Описание |
---|---|
массив Обязательный |
Диапазон или массив для сортировки |
[индекс_сортировки] Необязательный |
Число, указывающее строку или столбец, по которым нужно выполнить сортировку. |
[порядок_сортировки] Необязательный |
Число, указывающее нужный порядок сортировки: 1 для сортировки по возрастанию (по умолчанию), -1 для сортировки по убыванию |
[по_столбцу] Необязательный |
Логическое значение, указывающее нужное направление сортировки: ЛОЖЬ для сортировки по строкам (по умолчанию), ИСТИНА для сортировки по столбцам |
Примечания:
-
Если аргумент «индекс_сортировки» не указан, предполагается строка 1 или столбец 1. Если не указан порядок сортировки, применяется сортировка по возрастанию. По умолчанию Excel выполняет сортировку по строкам, а сортировка по столбцам применяется, если аргументу «по_столбцу» присвоено значение ИСТИНА. Если аргументу «по_столбцу» присвоено значение ЛОЖЬ или он отсутствует, Excel выполняет сортировку по строкам.
-
Функция СОРТ предназначена для сортировки данных в массиве. Если вы хотите отсортировать данные в сетке, лучше использовать функцию СОРТПО, поскольку она удобнее. Функция СОРТПО учитывает добавления или удаления столбцов, так как она ссылается на диапазон, а функция СОРТ ссылается на номер индекса столбца.
-
Массив может рассматриваться как строка со значениями, столбец со значениями или комбинация строк и столбцов со значениями. В приведенном выше примере исходным массивом для формулы СОРТ является диапазон A5:D20.
-
Функция СОРТ возвращает массив, который будет рассеиваться, если это будет конечным результатом формулы. Это означает, что Excel будет динамически создавать соответствующий по размеру диапазон массива при нажатии клавиши Enter. Если ваши вспомогательные данные хранятся в таблице Excel, тогда массив будет автоматически изменять размер при добавлении и удалении данных из диапазона массива, если вы используете Структурированные ссылки. Дополнительные сведения см. в статье Поведение рассеянного массива.
-
Приложение Excel ограничило поддержку динамических массивов в операциях между книгами, и этот сценарий поддерживается, только если открыты обе книги. Если закрыть исходную книгу, все связанные формулы динамического массива вернут ошибку #ССЫЛКА! после обновления.
Примеры
Сортировка диапазона значений по убыванию.
Совместное использование функций СОРТ и ФИЛЬТР, чтобы отсортировать диапазон по возрастанию и ограничить его значениями, превышающими 5000.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Функция ФИЛЬТР
Функция СЛУЧМАССИВ
Функция ПОСЛЕДОВ
Функция СОРТПО
Функция УНИК
Ошибки #ПЕРЕНОС! в Excel
Динамические массивы и поведение массива с переносом
Оператор неявного пересечения: @
Нужна дополнительная помощь?
Функции динамических массивов: СОРТ, ФИЛЬТР и УНИК
Эта статья является логическим продолжением предыдущего материала про новые динамические массивы (ДМ), появившиеся в Excel в Office 365. Если вы ещё с не ознакомились (кому лень читать — там есть видео), то очень советую сделать это сейчас, чтобы понимать о чём, собственно, идёт речь и как заполучить все эти радости в вашем Excel.
Обновление Office 365, которое подарило Microsoft Excel новый вычислительный движок с поддержкой динамических массивов, также добавило к нашему арсеналу 7 новых функций, заточенных специально для работы с массивами. В этой статье я хотел бы рассказать про три самых важных функции: СОРТ, ФИЛЬТР и УНИК. Остальные играют скорее вспомогательную роль — про них чуть позже.
Для простоты я буду во всех примерах я буду показывать работу этих функций на обычных таблицах, но можно иметь ввиду, что с «умными» таблицами (созданными через Главная — Форматировать как таблицу или сочетанием клавиш Ctrl+T) эти функции тоже отлично работают.
Итак, поехали…
Функция СОРТ (SORT)
Синтаксис:
=СОРТ(массив; [индекс_сортировки]; [порядок_сортировки]; [по_столбцу])
В самом простом варианте требует в качестве аргумента только массив (диапазон) и выдает его уже в отсортированном виде:
По умолчанию сортировка выполняется по возрастанию. Если нужен обратный порядок, то за это отвечает третий аргумент (1 — по возрастанию, -1 — по убыванию):
Если на входе указать диапазон из несколько колонок в данных, то сортировка происходит по первому столбцу. Если нужно сортировать не по первому, то в качестве второго аргумента можно указать номер столбца для сортировки:
Если хочется сортировать по нескольким столбцам сразу, то придётся задать массив номеров столбцов во втором аргументе в фигурных скобках. Одновременно аналогичным образом можно задать третьим аргументом и направление сортировки для каждого столбца.
Например, если мы хотим отсортировать наш список по городам по возрастанию и затем по суммам по убыванию, то это будет выглядеть так:
Последний аргумент используется, если нужно сортировать не строки, а столбцы, т.е. упорядочивать данные по горизонтали, что встречается существенно реже.
Вот так — просто и изящно. Особенно, если вспомнить какую монстрообразную формулу массива требовалось ввести раньше для сортировки всего лишь одного (!) столбца:
Бррр…
Функция ФИЛЬТР (FILTER)
Синтаксис:
=ФИЛЬТР(массив; включить; [если_пусто])
Назначение этой функции — принять в качестве аргумента массив исходных ячеек и отфильтровать его по заданному условию(ям). Какие строки включить в результаты, а какие убрать — определяется вторым аргументом. Он должен представлять из себя массив логических значений ЛОЖЬ (FALSE) и ИСТИНА (TRUE), задающих статус для каждой строки:
Логическую ИСТИНУ и ЛОЖЬ можно, для компактности, заменить на 1 (или любое другое число) и 0 (или пустую ячейку):
А самое интересное, что логические значения могут быть результатом какого-либо выражения, например:
Если чуть подумать, то простор для фантазии тут открывается широкий. Вот вам для затравки несколько вариантов условий, с которыми замечательно будет работать эта функция:
- =ФИЛЬТР(B2:D25; D2:D25>=10000) — отбираем все заказы, где стоимость больше или равна 10 000
- =ФИЛЬТР(B2:D25; ЛЕВСИМВ(B2:B25) = «Б») — фильтрация всех строк, где название товара начинается с «Б» (блуза, брюки, бриджи и т.д.)
- =ФИЛЬТР(B2:D25; (B2:B25 = «Брюки») * (C2:C25 = «Анна»)) — отбор всех сделок Анны, где она продавала брюки
- =ФИЛЬТР(B2:D25; (C2:C25 = «Анна») + (C2:C25 = «Иван»)) — все сделки Анны и Ивана
- =ФИЛЬТР(B2:D25; ЕСЛИОШИБКА(ПОИСК(«Самара»;A2:A25);0)) — фильтрация всех сделок, где в названии города содержится слово Самара (г. Самара, Самара г., город Самара, Самара-городок и т.д.)
Если функция ФИЛЬТР не находит ни одного значения, удовлетворяющего условию, то она выдаёт ошибку #ВЫЧИСЛ! Чтобы вывести вместо неё что-то более осмысленное, можно использовать третий аргумент:
Функция УНИК (UNIQUE)
Синтаксис:
=УНИК(массив; [по_столбцам]; [один_раз])
В самом простом варианте эта функция извлекает из входного массива все имеющиеся там значения, удаляет повторы и выдаёт то, что осталось:
Если в качестве исходного массива выделено несколько столбцов, то проверка на уникальность идёт по всем, т.е. по связке значений из всех ячеек каждой строки:
Очень интересно работает третий аргумент — он заставляет функцию извлечь из исходного массива только те данные, которые встречаются там всего один раз, т.е. не имеют клонов:
Комбинирование функций
Само-собой, никто не запрещает нам «женить» все упомянутые функций между собой — здесь-то и начинается настоящая магия, мощь и синергия.
Разберём, для примера, классическую задачу: предположим, что нам нужно сформировать справочник по городам для выпадающего списка на основе выгрузки из какой-нибудь базы данных. В исходной выгрузке города повторяются в случайном порядке, есть пустые ячейки и дубли. А необходимый нам справочник, содержащий эталонный набор городов, должен быть:
- без повторов
- без пустых ячеек
- отсортирован по возрастанию от А до Я
Делается всё вышеперечисленное одной (!) формулой:
В английской версии эта функция выглядит как:
=SORT(UNIQUE(FILTER(B2:B100000;NOT(ISEMPTY(B2:B100000)))))
Здесь:
- ФИЛЬТР — отбирает только те ячейки, где есть данные (не пусто)
- УНИК — убирает повторы в отобранном функцией ФИЛЬТР списке
- СОРТ — сортирует получившийся справочник по алфавиту
После этого останется только указать получившийся динамический массив как источник для выпадающего списка на вкладке Данные — Проверка данных (Data — Validation), не забыв добавить после адреса первой ячейки массива знак решётки:
Причем, несмотря на приличный размер исходного диапазона (100 тыс. строк!) никакого торможения при пересчёте такой формулы нет абсолютно — новый вычислительный движок Excel справляется «на ура». При этом классические формулы массива на подобных задачах начинали ощутимо подтупливать на таблицах уже с 3-5 тыс. строк, а на 100 тыс. просто загнали бы ваш Excel в кому.
Оглядываясь назад и вспоминая все свои выполненные проекты по автоматизации за последние Х лет, с грустью понимаю сколько дней и даже, наверное, недель можно было бы сэкономить, если бы динамические массивы и такие функции существовали тогда. Даааа….
Ну, лучше поздно, чем никогда, верно? По крайней мере, нашим детям точно будет проще
Ссылки по теме
- Что такое динамические массивы в новом Excel и как они работают
- Как отсортировать список формулой
- Как создать выпдающий список в ячейке листа Excel
Это перевод второй главы книги Bill Jelen. Excel Dynamic Arrays Straight to the Point. К содержанию.
Рис. 8. Исходные данные
Скачать заметку в формате Word или pdf, примеры в формате Excel
Сортировка в прежних версиях Excel
Ранее сортировка в Excel с помощью формул была довольно сложной. На рис. 8 представлены исходные данные, которые будут использоваться на протяжении этой главы.
Старый способ сортировки включал цепочку формул:
Рис. 9. Старый способ сортировки с помощью формул; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
Новые функции динамических массивов СОРТ() и СОРТПО() значительно упростили эту процедуру.
Синтаксис функции СОРТ()
Рис. 10. Функция СОРТ()
Допустим, вы хотите отсортировать исходный диапазон A3:C16 (см. рис. по полю 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, по-прежнему поддерживаются в целях обеспечения обратной совместимости, но больше их использование не требуется. Если вы хотите, вы можете преобразовать старые формулы массива в динамические формулы массива путем поиска первой ячейки в диапазоне массива, копирования текста формулы, удаления всего диапазона из старого массива и повторного ввода формулы в левой верхней ячейке. Перед обновлением устаревших формул массива до динамических формул массива следует помнить о некоторых различиях вычислений между ними.
Функция СОРТ возвращает отсортированный массив элементов в массиве. Возвращаемый массив имеет ту же форму, что и предоставленный аргумент массива.
Описание функции СОРТ
Функция СОРТ является одной из семи функций, которые Microsoft анонсировала 24 сентября 2018 года вместе с революционным нововведением использования динамических массивов в Excel. Данная функция, как и остальные 6, и возможность использования динамических массивов, не должна быть доступна пользователям, купившим Office 2019 и, тем более, более ранним версиям.
Воспользоваться новыми возможностями смогут пользователи с подпиской Office 365, а в будущем пользователи Office 2021 (следующей версией, которая следует за Office 2019), если к тому времени Microsoft попросту не оставит только вариант с подпиской.
Данная функция позволяет очень просто отсортировать значения в диапазоне, как по возрастанию, так и по убыванию. Доступна возможность сортировки по столбцам, т.е. так называемая «горизонтальная сортировка».
Основное отличие данной функции от СОРТПО заключается в том, что СОРТПО позволяет выполнить сортировку по нескольким столбцам диапазона, например, сначала по фамилии, потом по имени, потом по отчеству. Функция СОРТ, в свою очередь, может предложить горизонтальную сортировку.
Для сортировки массива по одному столбцу, и СОРТ, и СОРТПО равнозначны.
Синтаксис
=СОРТ(массив;[индекс_сортировки];[порядок_сортировки];[по_столбцу])
Аргументы
массивиндекс_сортировкипорядок_сортировкипо_столбцу
Обязательный. Диапазон или массив для сортировки
Необязательный. Число, указывающее строку или столбец, по которым нужно выполнить сортировку.
Необязательный. Число, указывающее нужный порядок сортировки: 1 для сортировки по возрастанию (по умолчанию), -1 для сортировки по убыванию
Необязательный. Логическое значение, указывающее нужное направление сортировки: ЛОЖЬ для сортировки по строкам (по умолчанию), ИСТИНА для сортировки по столбцам
Замечания
- Если аргумент «индекс_сортировки» не указан, предполагается строка 1 или столбец 1. Если не указан порядок сортировки, применяется сортировка по возрастанию. По умолчанию Excel выполняет сортировку по строкам, а сортировка по столбцам применяется, если аргументу «по_столбцу» присвоено значение ИСТИНА. Если аргументу «по_столбцу» присвоено значение ЛОЖЬ или он отсутствует, Excel выполняет сортировку по строкам.
- Функция СОРТ предназначена для сортировки данных в массиве. Если вы хотите отсортировать данные в сетке, лучше использовать функцию СОРТПО, поскольку она удобнее. Функция СОРТПО учитывает добавления или удаления столбцов, так как она ссылается на диапазон, а функция СОРТ ссылается на номер индекса столбца.
- Массив может рассматриваться как строка со значениями, столбец со значениями или комбинация строк и столбцов со значениями. В приведенном выше примере исходным массивом для формулы СОРТ является диапазон A5:D20.
Пример
Видео работы функции
СОРТ и СОРТПО в чем разница?
Дополнительные материалы
Файл из видео.
Microsoft добавила динамические массивы в Excel и новые функции.
Сортировка одномерного массива в VBA Excel по возрастанию или убыванию с числовым или текстовым сравнением числовых элементов. Сортировка выбором.
Сортировка массива выбором
Функция, осуществляющая сортировку выбором одномерного массива по возрастанию с числовым сравнением числовых элементов массива:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Function SortArray(myArray As Variant) As Variant Dim l As Long, u As Long, i1 As Long, i2 As Long, im As Long, tmp As Variant ‘Определение наименьшего индекса массива l = LBound(myArray) ‘Определение наибольшего индекса массива u = UBound(myArray) For i1 = l To u im = i1 For i2 = i1 To u ‘Поиск наименьшего элемента массива, начиная с элемента myArray(i1) If myArray(i2) < myArray(im) Then im = i2 Next ‘Если наименьший элемент не является текущим (im <> i1), ‘тогда наименьший элемент и текущий меняются местами If im <> i1 Then tmp = myArray(i1) myArray(i1) = myArray(im) myArray(im) = tmp End If Next SortArray = myArray End Function |
Внешний цикл сравнивает по очереди каждый элемент массива с наименьшем элементом, найденным вложенным циклом среди оставшихся элементов (с бóльшими индексами), и, если наименьший элемент myArray(im)
не является текущим элементом myArray(i1)
, они меняются местами.
Функция с выбором вида сортировки
Функция сортировки одномерного массива с дополнительным параметром mySort, который позволяет выбрать сортировку по возрастанию или убыванию и с числовым или текстовым сравнением числовых элементов массива:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Function SortArrayNew(myArray As Variant, mySort As Long) As Variant Dim l As Long, u As Long, i1 As Long, i2 As Long, im As Long, tmp As Variant l = LBound(myArray) u = UBound(myArray) For i1 = l To u im = i1 For i2 = i1 To u Select Case mySort Case Is = 0 If myArray(i2) < myArray(im) Then im = i2 Case Is = 1 If CStr(myArray(i2)) < CStr(myArray(im)) Then im = i2 Case Is = 2 If myArray(i2) > myArray(im) Then im = i2 Case Is = 3 If CStr(myArray(i2)) > CStr(myArray(im)) Then im = i2 End Select Next If im <> i1 Then tmp = myArray(i1) myArray(i1) = myArray(im) myArray(im) = tmp End If Next SortArrayNew = myArray End Function |
Значения, которые может принимать параметр mySort:
Значение | Вид сортировки |
---|---|
0 | по возрастанию с числовым сравнением чисел |
1 | по возрастанию с текстовым сравнением чисел |
2 | по убыванию с числовым сравнением чисел |
3 | по убыванию с текстовым сравнением чисел |
Пример сортировки массива
Пример использования разных видов сортировки одномерного массива в VBA Excel с выводом результатов на рабочий лист:
Sub Primer() Dim myArr As Variant, x As Variant, i As Long, n As Long For i = 1 To 4 myArr = Array(46, 25, «Лето», 508, 35, «лес», 11, 5, «25ф», «Лес», 45, 58, «лето», 350) myArr = SortArrayNew(myArr, i — 1) n = 1 For Each x In myArr Cells(n, i) = myArr(n — 1) n = n + 1 Next Next End Sub |
Результаты разных видов сортировки массива myArr:
Содержание
- Сортировка данных в Excel по строкам и столбцам с помощью формул
- Порядок сортировки в Excel
- Сортировка по цвету ячейки и по шрифту
- Сортировка в Excel по нескольким столбцам
- Сортировка строк в Excel
- Случайная сортировка в Excel
- Динамическая сортировка таблицы в MS Excel
- Функция СОРТ
- Примеры
- Дополнительные сведения
- Функция СОРТ динамических массивов в Excel
- Сортировка в прежних версиях Excel
- Синтаксис функции СОРТ()
- Простая сортировка с одним аргументом
- Сортировка на основе двух и более столбцов
- Сортировка по столбцам
- Что осталось для CTRL + SHIFT + ENTER
Сортировка данных в Excel по строкам и столбцам с помощью формул
Сортировка данных в Excel – инструмент для представления информации в удобном для пользователя виде.
Числовые значения можно отсортировать по возрастанию и убыванию, текстовые – по алфавиту и в обратном порядке. Доступны варианты – по цвету и шрифту, в произвольном порядке, по нескольким условиям. Сортируются столбцы и строки.
Порядок сортировки в Excel
Существует два способа открыть меню сортировки:
- Щелкнуть правой кнопкой мыши по таблице. Выбрать «Сортировку» и способ.
- Открыть вкладку «Данные» — диалоговое окно «Сортировка».
Часто используемые методы сортировки представлены одной кнопкой на панели задач:
Сортировка таблицы по отдельному столбцу:
- Чтобы программа правильно выполнила задачу, выделяем нужный столбец в диапазоне данных.
- Далее действуем в зависимости от поставленной задачи. Если нужно выполнить простую сортировку по возрастанию/убыванию (алфавиту или обратно), то достаточно нажать соответствующую кнопку на панели задач. Когда диапазон содержит более одного столбца, то Excel открывает диалоговое окно вида: Чтобы сохранилось соответствие значений в строках, выбираем действие «автоматически расширить выделенный диапазон». В противном случае отсортируется только выделенный столбец – структура таблицы нарушится.
Если выделить всю таблицу и выполнить сортировку, то отсортируется первый столбец. Данные в строках станут в соответствии с положением значений в первом столбце.
Сортировка по цвету ячейки и по шрифту
Программа Excel предоставляет пользователю богатые возможности форматирования. Следовательно, можно оперировать разными форматами.
Сделаем в учебной таблице столбец «Итог» и «зальем» ячейки со значениями разными оттенками. Выполним сортировку по цвету:
- Выделяем столбец – правая кнопка мыши – «Сортировка».
- Из предложенного списка выбираем «Сначала ячейки с выделенным цветом».
- Соглашаемся «автоматически расширить диапазон».
Программа отсортировала ячейки по акцентам. Пользователь может самостоятельно выбрать порядок сортировки цвета. Для этого в списке возможностей инструмента выбираем «Настраиваемую сортировку».
В открывшемся окне вводим необходимые параметры:
Здесь можно выбрать порядок представления разных по цвету ячеек.
По такому же принципу сортируются данные по шрифту.
Сортировка в Excel по нескольким столбцам
Как задать порядок вторичной сортировки в Excel? Для решения этой задачи нужно задать несколько условий сортировки.
- Открываем меню «Настраиваемая сортировка». Назначаем первый критерий.
- Нажимаем кнопку «Добавить уровень».
- Появляются окошки для введения данных следующего условия сортировки. Заполняем их.
Программа позволяет добавить сразу несколько критериев чтобы выполнить сортировку в особом порядке.
Сортировка строк в Excel
По умолчанию сортируются данные по столбцам. Как осуществить сортировку по строкам в Excel:
- В диалоговом окне «Настраиваемой сортировки» нажать кнопку «Параметры».
- В открывшемся меню выбрать «Столбцы диапазона».
- Нажать ОК. В окне «Сортировки» появятся поля для заполнения условий по строкам.
Таким образом выполняется сортировка таблицы в Excel по нескольким параметрам.
Случайная сортировка в Excel
Встроенные параметры сортировки не позволяют расположить данные в столбце случайным образом. С этой задачей справится функция СЛЧИС.
Например, нужно расположить в случайном порядке набор неких чисел.
Ставим курсор в соседнюю ячейку (слева-справа, не важно). В строку формул вводим СЛЧИС(). Жмем Enter. Копируем формулу на весь столбец – получаем набор случайных чисел.
Теперь отсортируем полученный столбец по возрастанию /убыванию – значения в исходном диапазоне автоматически расположатся в случайном порядке.
Динамическая сортировка таблицы в MS Excel
Если применить к таблице стандартную сортировку, то при изменении данных она не будет актуальной. Нужно сделать так, чтобы значения сортировались автоматически. Используем формулы.
- Есть набор простых чисел, которые нужно отсортировать по возрастанию.
- Ставим курсор в соседнюю ячейку и вводим формулу: =НАИМЕНЬШИЙ(A:A;СТРОКА(A1)). Именно так. В качестве диапазона указываем весь столбец. А в качестве коэффициента – функцию СТРОКА со ссылкой на первую ячейку.
- Изменим в исходном диапазоне цифру 7 на 25 – «сортировка» по возрастанию тоже изменится.
Если необходимо сделать динамическую сортировку по убыванию, используем функцию НАИБОЛЬШИЙ.
Для динамической сортировки текстовых значений понадобятся формулы массива.
- Исходные данные – перечень неких названий в произвольном порядке. В нашем примере – список фруктов.
- Выделяем столбец и даем ему имя «Фрукты». Для этого в поле имен, что находится возле строки формул вводим нужное нам имя для присвоения его к выделенному диапазону ячеек.
- В соседней ячейке (в примере – в В5) пишем формулу: Так как перед нами формула массива, нажимаем сочетание Ctrl + Shift + Enter. Размножаем формулу на весь столбец.
- Если в исходный столбец будут добавляться строки, то вводим чуть модифицированную формулу: Добавим в диапазон «фрукты» еще одно значение «помело» и проверим:
Впоследствии при добавлении данных в таблицу процесс сортирования будет выполняться автоматически.
Источник
Функция СОРТ
Функция СОРТ сортирует содержимое диапазона или массива.
В этом примере используется отдельная сортировка по регионам, продавцам и продуктам с помощью формулы =СОРТ(A2:А17), скопированной в ячейки F2, H2 и J2.
Функция СОРТ возвращает отсортированный массив элементов в массиве. Возвращаемый массив имеет ту же форму, что и предоставленный аргумент массива.
Диапазон или массив для сортировки
Число, указывающее строку или столбец, по которым нужно выполнить сортировку.
Число, указывающее нужный порядок сортировки: 1 для сортировки по возрастанию (по умолчанию), -1 для сортировки по убыванию
Логическое значение, указывающее нужное направление сортировки: ЛОЖЬ для сортировки по строкам (по умолчанию), ИСТИНА для сортировки по столбцам
Если аргумент «индекс_сортировки» не указан, предполагается строка 1 или столбец 1. Если не указан порядок сортировки, применяется сортировка по возрастанию. По умолчанию Excel выполняет сортировку по строкам, а сортировка по столбцам применяется, если аргументу «по_столбцу» присвоено значение ИСТИНА. Если аргументу «по_столбцу» присвоено значение ЛОЖЬ или он отсутствует, Excel выполняет сортировку по строкам.
Функция СОРТ предназначена для сортировки данных в массиве. Если вы хотите отсортировать данные в сетке, лучше использовать функцию СОРТПО, поскольку она удобнее. Функция СОРТПО учитывает добавления или удаления столбцов, так как она ссылается на диапазон, а функция СОРТ ссылается на номер индекса столбца.
Массив может рассматриваться как строка со значениями, столбец со значениями или комбинация строк и столбцов со значениями. В приведенном выше примере исходным массивом для формулы СОРТ является диапазон A5:D20.
Функция СОРТ возвращает массив, который будет рассеиваться, если это будет конечным результатом формулы. Это означает, что Excel будет динамически создавать соответствующий по размеру диапазон массива при нажатии клавиши Enter. Если ваши вспомогательные данные хранятся в таблице Excel, тогда массив будет автоматически изменять размер при добавлении и удалении данных из диапазона массива, если вы используете Структурированные ссылки. Дополнительные сведения см. в статье Поведение рассеянного массива.
Приложение Excel ограничило поддержку динамических массивов в операциях между книгами, и этот сценарий поддерживается, только если открыты обе книги. Если закрыть исходную книгу, все связанные формулы динамического массива вернут ошибку #ССЫЛКА! после обновления.
Примеры
Сортировка диапазона значений по убыванию.
Совместное использование функций СОРТ и ФИЛЬТР, чтобы отсортировать диапазон по возрастанию и ограничить его значениями, превышающими 5000.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Источник
Функция СОРТ динамических массивов в Excel
Это перевод второй главы книги Bill Jelen. Excel Dynamic Arrays Straight to the Point. К содержанию.
Рис. 8. Исходные данные
Скачать заметку в формате Word или pdf, примеры в формате Excel
Сортировка в прежних версиях Excel
Ранее сортировка в Excel с помощью формул была довольно сложной. На рис. 8 представлены исходные данные, которые будут использоваться на протяжении этой главы.
Старый способ сортировки включал цепочку формул:
Рис. 9. Старый способ сортировки с помощью формул; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
Новые функции динамических массивов СОРТ() и СОРТПО() значительно упростили эту процедуру.
Синтаксис функции СОРТ()
Рис. 10. Функция СОРТ()
Допустим, вы хотите отсортировать исходный диапазон A3:C16 (см. рис. по полю 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, по-прежнему поддерживаются в целях обеспечения обратной совместимости, но больше их использование не требуется. Если вы хотите, вы можете преобразовать старые формулы массива в динамические формулы массива путем поиска первой ячейки в диапазоне массива, копирования текста формулы, удаления всего диапазона из старого массива и повторного ввода формулы в левой верхней ячейке. Перед обновлением устаревших формул массива до динамических формул массива следует помнить о некоторых различиях вычислений между ними.
Источник
Сортировка данных в Excel – инструмент для представления информации в удобном для пользователя виде.
Числовые значения можно отсортировать по возрастанию и убыванию, текстовые – по алфавиту и в обратном порядке. Доступны варианты – по цвету и шрифту, в произвольном порядке, по нескольким условиям. Сортируются столбцы и строки.
Порядок сортировки в Excel
Существует два способа открыть меню сортировки:
- Щелкнуть правой кнопкой мыши по таблице. Выбрать «Сортировку» и способ.
- Открыть вкладку «Данные» — диалоговое окно «Сортировка».
Часто используемые методы сортировки представлены одной кнопкой на панели задач:
Сортировка таблицы по отдельному столбцу:
- Чтобы программа правильно выполнила задачу, выделяем нужный столбец в диапазоне данных.
- Далее действуем в зависимости от поставленной задачи. Если нужно выполнить простую сортировку по возрастанию/убыванию (алфавиту или обратно), то достаточно нажать соответствующую кнопку на панели задач. Когда диапазон содержит более одного столбца, то Excel открывает диалоговое окно вида:
Чтобы сохранилось соответствие значений в строках, выбираем действие «автоматически расширить выделенный диапазон». В противном случае отсортируется только выделенный столбец – структура таблицы нарушится.
Если выделить всю таблицу и выполнить сортировку, то отсортируется первый столбец. Данные в строках станут в соответствии с положением значений в первом столбце.
Сортировка по цвету ячейки и по шрифту
Программа Excel предоставляет пользователю богатые возможности форматирования. Следовательно, можно оперировать разными форматами.
Сделаем в учебной таблице столбец «Итог» и «зальем» ячейки со значениями разными оттенками. Выполним сортировку по цвету:
- Выделяем столбец – правая кнопка мыши – «Сортировка».
- Из предложенного списка выбираем «Сначала ячейки с выделенным цветом».
- Соглашаемся «автоматически расширить диапазон».
Программа отсортировала ячейки по акцентам. Пользователь может самостоятельно выбрать порядок сортировки цвета. Для этого в списке возможностей инструмента выбираем «Настраиваемую сортировку».
В открывшемся окне вводим необходимые параметры:
Здесь можно выбрать порядок представления разных по цвету ячеек.
По такому же принципу сортируются данные по шрифту.
Сортировка в Excel по нескольким столбцам
Как задать порядок вторичной сортировки в Excel? Для решения этой задачи нужно задать несколько условий сортировки.
- Открываем меню «Настраиваемая сортировка». Назначаем первый критерий.
- Нажимаем кнопку «Добавить уровень».
- Появляются окошки для введения данных следующего условия сортировки. Заполняем их.
Программа позволяет добавить сразу несколько критериев чтобы выполнить сортировку в особом порядке.
Сортировка строк в Excel
По умолчанию сортируются данные по столбцам. Как осуществить сортировку по строкам в Excel:
- В диалоговом окне «Настраиваемой сортировки» нажать кнопку «Параметры».
- В открывшемся меню выбрать «Столбцы диапазона».
- Нажать ОК. В окне «Сортировки» появятся поля для заполнения условий по строкам.
Таким образом выполняется сортировка таблицы в Excel по нескольким параметрам.
Случайная сортировка в Excel
Встроенные параметры сортировки не позволяют расположить данные в столбце случайным образом. С этой задачей справится функция СЛЧИС.
Например, нужно расположить в случайном порядке набор неких чисел.
Ставим курсор в соседнюю ячейку (слева-справа, не важно). В строку формул вводим СЛЧИС(). Жмем Enter. Копируем формулу на весь столбец – получаем набор случайных чисел.
Теперь отсортируем полученный столбец по возрастанию /убыванию – значения в исходном диапазоне автоматически расположатся в случайном порядке.
Динамическая сортировка таблицы в MS Excel
Если применить к таблице стандартную сортировку, то при изменении данных она не будет актуальной. Нужно сделать так, чтобы значения сортировались автоматически. Используем формулы.
- Есть набор простых чисел, которые нужно отсортировать по возрастанию.
- Ставим курсор в соседнюю ячейку и вводим формулу: =НАИМЕНЬШИЙ(A:A;СТРОКА(A1)). Именно так. В качестве диапазона указываем весь столбец. А в качестве коэффициента – функцию СТРОКА со ссылкой на первую ячейку.
- Изменим в исходном диапазоне цифру 7 на 25 – «сортировка» по возрастанию тоже изменится.
Если необходимо сделать динамическую сортировку по убыванию, используем функцию НАИБОЛЬШИЙ.
Для динамической сортировки текстовых значений понадобятся формулы массива.
- Исходные данные – перечень неких названий в произвольном порядке. В нашем примере – список фруктов.
- Выделяем столбец и даем ему имя «Фрукты». Для этого в поле имен, что находится возле строки формул вводим нужное нам имя для присвоения его к выделенному диапазону ячеек.
- В соседней ячейке (в примере – в В5) пишем формулу: Так как перед нами формула массива, нажимаем сочетание Ctrl + Shift + Enter. Размножаем формулу на весь столбец.
- Если в исходный столбец будут добавляться строки, то вводим чуть модифицированную формулу: Добавим в диапазон «фрукты» еще одно значение «помело» и проверим:
Скачать формулы сортировки данных в Excel
Впоследствии при добавлении данных в таблицу процесс сортирования будет выполняться автоматически.
Сортировка данных – распространенный способ упорядочивания значений от большего к меньшему, по алфавиту или другим параметрам. В Excel это можно сделать несколькими методами – обращаясь к функциям или используя пункты в меню.
Вариант 1: Быстрая сортировка в Excel
Иногда требуется максимально быстро отсортировать данные в столбце по возрастанию чисел, убыванию или по алфавиту. Для этого идеально подойдут кнопки быстрой сортировки, предназначенные как раз для выполнения поставленной задачи.
-
Выделите зажатой левой кнопкой мыши столбец с данными и вызовите меню «Редактирование».
-
Откройте список «Сортировка и фильтр» и выберите подходящий для вас вариант упорядочения. С числами это по возрастанию или убыванию, а для текста – по алфавиту и в обратную сторону.
-
Если вы выделили не все ячейки в столбце, появится окно с предложением расширить диапазон. Сделайте это, если за пределами выделения тоже находятся значения, которые нужно сортировать. Укажите сортировку в пределах данного диапазона, если за ним находятся исключительно заголовки.
-
Изменения вступают в силу сразу же. Нажмите Ctrl + Z для отмены действия, если что-то выполнено неправильно.
Обратите внимание на то, что сортировка сбивается после внесения любых изменений в клетках. Придется снова обращаться к тем же самым кнопкам, упорядочив уже новый массив с данными.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Вариант 2: Настраиваемая сортировка
Более продвинутый вариант, позволяющий задать сразу несколько условий упорядочения, – это настраиваемая сортировка, выполняющаяся через соответствующее окно. Давайте разберем сортировку по двум разным параметрам:
-
Вы можете не выделять заранее столбец, если для него задано название. Вызовите то же меню редактирования, но на этот раз нажмите по «Настраиваемая сортировка».
-
Выберите вариант с расширением или сохранением диапазона, если предварительно выделили столбец.
-
Вы увидите первый уровень сортировки, который и стоит настроить с самого начала.
-
Выберите столбец для сортировки из первого выпадающего списка.
-
Далее укажите вариант сортировки. Это может быть значение, цвет шрифта или ячейки, знаки условного форматирования.
-
В завершение укажите, в каком порядке необходимо отсортировать данные.
-
Если затем нужно применить еще один вариант сортировки, добавьте уровень и настройте его должным образом.
-
После применения вернитесь к таблице и убедитесь в том, что действия произведены верно. Учитывайте, что в этом случае сортировка тоже собьется, если вы внесете изменения в любой ячейке.
Вариант 3: Функция НАИБОЛЬШИЙ или НАИМЕНЬШИЙ
Последний вариант – единственный динамический, то есть после внесения изменений в клетках сортировка автоматически перестроится и ее последовательность будет правильной. Как вы уже поняли, для этого понадобится использовать функцию НАИБОЛЬШИЙ или НАИМЕНЬШИЙ.
-
В пустом столбце выберите первую ячейку для сортировки (желательно, чтобы она находилась параллельно ячейке с существующего столбца). Вызовите одну из указанных функций, отталкиваясь от необходимого вам типа упорядочения.
-
Далее в скобках укажите (C:C;СТРОКА(C1)), поменяв буквы на номер столбца сортировки.
-
Растяните функцию, зажав левую кнопку мыши в правой нижней точке ячейки и потянув вниз. Вы увидите, что данные указанного столбца перенесены параллельно, но соблюдена сортировка по возрастанию или убыванию. При этом исходные данные остаются в таком же хаотичном порядке, как были и раньше.
Теперь в исходном столбце вы можете вносить любые изменения для значений, а параллельные данные в отсортированном столбце поменяются в зависимости от указанных данных, но порядок все равно будет правильным.
Используйте любой из вариантов сортировки по надобности, но учитывайте, что динамически меняется только способ с применением функции. Конечно, он потребует создания дополнительного столбца, но в некоторых случаях это является оптимальным решением. Только не забудьте дать название столбцу, чтобы все пользователи таблицы понимали, для чего он нужен на листе.
The SORT function sorts the contents of a range or array in ascending or descending order with a formula. The result from SORT is a dynamic array of values that will «spill» onto the worksheet into a range. If values in the source data change, the result from SORT will update automatically.
The SORT function takes four arguments: array, sort_index, sort_order, and by_col. The first argument, array, is the range or array to be sorted. This is the only required argument. By default, the SORT function will sort values in ascending order using the first column in array. Use the optional arguments sort_index and sort_order to control which column to sort by, and the order to sort by (ascending or descending). Sort_index should be a number corresponding to the column (or row) used for sorting. For example, to sort by the third column in a range of data, use 3 for sort_index. The optional sort_order argument determines sort direction. Use 1 for ascending order and -1 for descending order. By default, the SORT function will sort data vertically by rows. To sort a range horizontally by columns, set the fourth argument, by_col, to TRUE.
Basic Examples
To sort a range by the first column in ascending order:
=SORT(range) // sort by column 1, ascending
=SORT(range,1,1) // sort by column 1, ascending
To sort a range by the first column in descending order:
=SORT(range,1,-1) // sort by column 1, descending
To sort a range by the second column in descending order:
=SORT(range,2,-1) // sort by column 2, descending
To sort a range horizontally (by column) using values in row 1 in descending order, set the fourth argument, by_col, to TRUE or 1:
=SORT(range,1,-1,TRUE)
=SORT(range,1,-1,1)
Example — sort by score
In the example shown above, data includes names in column B and scores in column C. In cell E5, the SORT function is used to sort the data by score in descending order:
=SORT(B5:C14,2,-1) // sort by scores in descending order
The SORT function extracts all values, sorted in descending order by score, and results «spill» into the range E5:F14. To sort by score in ascending order, omit sort_order or to 1 like this:
=SORT(B5:C14,2) // sort by score in ascending order
=SORT(B5:C14,2,1) // sort by score in ascending order
Sort by more than one level
Unlike the SORTBY function, the SORT function does not provide a way to sort data by more than one level. However, by using array constants for sort_index and sort_order, it can be done. This video explains how.
Notes
- SORT returns a #VALUE error if sort_index is out of range.