Функция сорт в excel как добавить
В большинстве случаев работы с данными они организованны вертикально, поэтому когда подразумевается обработка имеется ввиду именно вертикальная обработка данных, включая сортировку. Т.е. если нужно отсортировать числа по возрастанию, подразумевается, что вверху списка будут числа с минимальными значениями, а внизу списка с максимальными. Именно с такой “вертикальной” организацией данных и связана чрезвычайная популярность функции ВПР (относительно той же ГПР).
В этом материале мы не рассматриваем стандартную “вертикальную” сортировку, ей уделено достаточно внимания как на просторах интернета, так и в нашем курсе по Excel. В курсе мы рассмотрели сортировку по одному, нескольким критериям, а также, сортировку с учетом атрибутов ячеек.
Смотрите также видеоверсию статьи «Горизонтальная сортировка в Excel».
Но, все-таки, как отсортировать ячейки Excel по горизонтали? Для горизонтальной сортировки в Excel припасено несколько вариантов, которые дополняют друг друга:
- С помощью стандартного механизма настраиваемой сортировки: Вкладка “Главная”/ группа “Редактирование”/ команда “Сортировка и фильтр”/ “Настраиваемая сортировка”. Далее, в параметрах выбираем сортировку по столбцам диапазона.
Плюсы такого варианта сортировки в том что можно сортировать Любой тип информации (как числа, так и текст). Минус такого варианта заключается в том, что если нужно отсортировать большое количество данных, придется каждую отдельную строку настраивать отдельно.
- С помощью функций НАИМЕНЬШИЙ (SMALL) или НАИБОЛЬШИЙ (LARGE). Данный способ решает проблему большого количества данных по вертикали, умело оперируя смешанными и абсолютными ссылками, можно запросто сделать горизонтальную сортировку для большого количества данных. Но у этого способа есть один существенный недостаток, который, кстати, отсутствует в первом варианте, – это возможность сортировки только числовой информации. Да, к сожалению, для текста не подойдет.
- С помощью механизма Power Query. Мы уже неоднократно использовали данный инструмент при решении конкурсных заданий ExcelWorldChamp здесь и здесь. На первый взгляд решение может показаться громоздким, однако, по мере освоения Power Query, можно привыкнуть. А, если вы планируете заниматься обработкой данных в Excel, то без использования данного инструмента сейчас просто нельзя.
Используем горизонтальную сортировку с помощью Power Query
Для совершения каких либо манипуляций в Power Query данные необходимо предварительно загрузить. На вкладке данные, в зависимости от типа источника данных пользуемся соответствующей командой. В нашем, простом случае, – это “Из таблицы/диапазона”.
В самом окне редактора Power Query переходим на вкладку “Добавление столбца”, команда “Настраиваемый столбец”. В диалоговом окне настройки столбца вводим функцию List.Sort(), в качестве аргументов передаем столбцы. По умолчанию функция сортируем по возрастанию, поэтому этот опциональный параметр нужно обязательно указывать, если сортировка нужна в убывающем порядке.
а вот формула для убывающего порядка
Поскольку результатом получается элемент типа список, нужно определиться с дальнейшими действиями сортировки, если нужно получить столбец со значениями, выбираем опцию “Развернуть в новые строки”, однако, если идет сортировка для большого количества данных, лучше воспользоваться опцией “Извлечь значения…”. При извлечении значений все они извлекаются в одну ячейку с определенным разделителем (ну или без). Если потом возникнет необходимость разнести значения по ячейкам сделать это можно несколькими способами, мы их рассмотрели в данном материале, однако, лучшим вариантом будет воспользоваться командой “Разделить столбец” вкладки “Главная” в самом Power Query.
The SORT function sorts the contents of a range or array.
In this example, we're sorting by Region, Sales Rep, and Product individually with =SORT(A2:A17), copied across cells F2, H2, and J2.
Note: This function is currently available to Microsoft 365 subscribers in Current Channel. It will be available to Microsoft 365 subscribers in Semi-Annual Enterprise Channel starting in July 2020. For more information on how features are rolled out to Microsoft 365 subscribers, see When do I get the newest features in for Microsoft 365.
SORT returns a sorted array of the elements in an array. The returned array is the same shape as the provided array argument.
=SORT(array,[sort_index],[sort_order],[by_col])
Description
The range, or array to sort
A number indicating the row or column to sort by
A number indicating the desired sort order; 1 for ascending order (default), -1 for descending order
A logical value indicating the desired sort direction; FALSE to sort by row (default), TRUE to sort by column
Where sort_index is not provided, row1/col1 will be presumed. Where order is not provided, ascending order will be presumed. By default Excel will sort by row, and will only sort by column where by_col is TRUE. When by_col is FALSE or missing Excel will sort by row.
The SORT function is provided to sort data in an array. If you want to sort data in the grid, it's better to use the SORTBY function, as it is more flexible. SORTBY will respect column additions/deletions, because it references a range, where SORT references a column index number.
An array can be thought of as a row of values, a column of values, or a combination of rows and columns of values. In the example above, the source array for our SORT formula is range A5:D20.
The SORT function will return an array, which will spill if it's the final result of a formula. This means that Excel will dynamically create the appropriate sized array range when you press ENTER. If your supporting data is in an Excel Table, then the array will automatically resize as you add or remove data from your array range if you're using Structured References. For more details see this article on Spilled Array Behavior.
Examples
Sort a range of values in descending order.
Use SORT and FILTER together to sort a range in ascending order, and limit it to values over 5,000.
Need more help?
You can always ask an expert in the Excel Tech Community or get support in the Answers community.
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 for Mac Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще. Меньше
Функция СОРТ сортирует содержимое диапазона или массива.
В этом примере используется отдельная сортировка по регионам, продавцам и продуктам с помощью формулы =СОРТ(A2:А17), скопированной в ячейки F2, H2 и J2.
Примечание: Эта функция в настоящее время доступна обладателям подписки на Microsoft 365 в Актуальном канале. Она будет доступна обладателям подписки на Microsoft 365 в Полугодовом канале (корпоративном) начиная с июля 2020 г. Дополнительные сведения о том, как функции будут выпускаться для обладателей подписки на Microsoft 365, см. в статье Когда мне станут доступны самые новые возможности Microsoft 365.
Функция СОРТ возвращает отсортированный массив элементов в массиве. Возвращаемый массив имеет ту же форму, что и предоставленный аргумент массива.
=СОРТ(массив;[индекс_сортировки];[порядок_сортировки];[по_столбцу])
Диапазон или массив для сортировки
[индекс_сортировки]
Число, указывающее строку или столбец, по которым нужно выполнить сортировку.
[порядок_сортировки]
Число, указывающее нужный порядок сортировки: 1 для сортировки по возрастанию (по умолчанию), -1 для сортировки по убыванию
Логическое значение, указывающее нужное направление сортировки: ЛОЖЬ для сортировки по строкам (по умолчанию), ИСТИНА для сортировки по столбцам
Если аргумент "индекс_сортировки" не указан, предполагается строка 1 или столбец 1. Если не указан порядок сортировки, применяется сортировка по возрастанию. По умолчанию Excel выполняет сортировку по строкам, а сортировка по столбцам применяется, если аргументу "по_столбцу" присвоено значение ИСТИНА. Если аргументу "по_столбцу" присвоено значение ЛОЖЬ или он отсутствует, Excel выполняет сортировку по строкам.
Функция СОРТ предназначена для сортировки данных в массиве. Если вы хотите отсортировать данные в сетке, лучше использовать функцию СОРТПО, поскольку она удобнее. Функция СОРТПО учитывает добавления или удаления столбцов, так как она ссылается на диапазон, а функция СОРТ ссылается на номер индекса столбца.
Массив может рассматриваться как строка со значениями, столбец со значениями или комбинация строк и столбцов со значениями. В приведенном выше примере исходным массивом для формулы СОРТ является диапазон A5:D20.
Функция СОРТ возвращает массив, который будет рассеиваться, если это будет конечным результатом формулы. Это означает, что Excel будет динамически создавать соответствующий по размеру диапазон массива при нажатии клавиши Enter. Если ваши вспомогательные данные хранятся в таблице Excel, тогда массив будет автоматически изменять размер при добавлении и удалении данных из диапазона массива, если вы используете Структурированные ссылки. Дополнительные сведения см. в статье Поведение рассеянного массива.
Примеры
Сортировка диапазона значений по убыванию.
Совместное использование функций СОРТ и ФИЛЬТР, чтобы отсортировать диапазон по возрастанию и ограничить его значениями, превышающими 5000.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Если вам нужно отсортировать список, то к вашим услугам куча способов, самый простой из которых - кнопки сортировки на вкладке или в меню Данные (Data - Sort) . Бывают, однако, ситуации, когда сортировку списка нужно делать автоматически, т.е. формулами. Такое может потребоваться, например, при формировании данных для выпадающего списка, при вычислении данных для диаграмм и т.д. Как же "на лету" сортировать список формулой?
Способ 1. Числовые данные
Если список содержит только числовую информацию, то его сортировку можно легко сделать с помощью функций НАИМЕНЬШИЙ (SMALL) и СТРОКА (ROW) :
Функция НАИМЕНЬШИЙ (SMALL) выдергивает из массива (столбец А) n-й по счету наименьший элемент. Т.е. НАИМЕНЬШИЙ(A:A;1) - это самое маленькое число из столбца, НАИМЕНЬШИЙ(А:А;2) - второе по счету наименьшее и т.д.
Функция СТРОКА (ROW) выдает порядковый номер строки для указанной ячейки, т.е. СТРОКА(А1)=1, СТРОКА(A2)=2 и т.д. В данном случае она используется просто как генератор последовательности чисел n=1,2,3… для нашего отсортированного списка. С тем же успехом можно было сделать дополнительный столбец, заполнить его вручную числовой последовательностью 1,2,3… и ссылаться на него вместо функции СТРОКА.
Способ 2. Текстовый список и обычные формулы
Если в списке не числа, а текст, то функция НАИМЕНЬШИЙ (SMALL) уже не сработает, поэтому придется пойти другим, чуть более длинным, путем.
Сначала добавим служебный столбец с формулой, где будет вычисляться порядковый номер каждого имени в будущем отсортированном списке с помощью функции СЧЁТЕСЛИ (COUNTIF) :
В английской версии это будет:
Ну, и наконец, осталось просто вытащить из списка имена по их номерам. Для этого можно использовать такую формулу:
Функция ПОИСКПОЗ (MATCH) ищет в столбце В нужный порядковый номер (1, 2, 3 и т.д.) и выдает, по сути, номер строки, где находится это число. Функция ИНДЕКС (INDEX) вытаскивает из столбца А имя по этому номеру строки.
Способ 3. Формула массива
Этот способ представляет собой, по сути, тот же алгоритм расстановки, что и в Cпособе-2, но реализованный формулой массива. Для упрощения формулы диапазону ячеек С1:С10 было дано имя List (выделить ячейки, нажать Ctrl+F3 и кнопку Создать):
В ячейку Е1 копируем нашу формулу:
Или в англоязычной версии:
и нажимаем Ctrl+Shift+Enter, чтобы ввести ее как формулу массива. Потом полученную формулу можно скопировать вниз на всю длину списка.
Если нужно, чтобы формула учитывала не фиксированный диапазон, а могла подстраиваться при дописывании новых элементов к списку, то нужно будет слегка изменить стратегию.
Во-первых, диапазон List нужно будет задать динамически. Для этого при создании нужно указать не фиксированный диапазон C3:C10, а специальную формулу, которая будет ссылаться на все имеющиеся значения независимо от их количества. Нажмите Alt+F3 или откройте вкладку Формулы - Диспетчер имен (Formulas - Name Manager) , создайте новое имя и в поле Ссылка (Reference) впишите вот такую формулу (я предполагаю, что диапазон сортируемых данных начинается с ячейки C1):
Это перевод второй главы книги Bill Jelen. Excel Dynamic Arrays Straight to the Point. К содержанию.
Рис. 8. Исходные данные
Сортировка в прежних версиях 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,,).
Рис. 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”
У Вас к рис.12 написано, что «движок распознал строку заголовку, и оставил его на своем месте». Но если сортировать по возрастанию, то строка заголовков оказывается снизу. Так что дело не в «распознавании», а в сортировке.
Читайте также: