В большинстве случаев работы с данными они организованны вертикально, поэтому когда подразумевается обработка имеется ввиду именно вертикальная обработка данных, включая сортировку. Т.е. если нужно отсортировать числа по возрастанию, подразумевается, что вверху списка будут числа с минимальными значениями, а внизу списка с максимальными. Именно с такой “вертикальной” организацией данных и связана чрезвычайная популярность функции ВПР (относительно той же ГПР).
В этом материале мы не рассматриваем стандартную “вертикальную” сортировку, ей уделено достаточно внимания как на просторах интернета, так и в нашем курсе по Excel. В курсе мы рассмотрели сортировку по одному, нескольким критериям, а также, сортировку с учетом атрибутов ячеек.
Смотрите также видеоверсию статьи «Горизонтальная сортировка в Excel».
Но, все-таки, как отсортировать ячейки Excel по горизонтали? Для горизонтальной сортировки в Excel припасено несколько вариантов, которые дополняют друг друга:
- С помощью стандартного механизма настраиваемой сортировки: Вкладка “Главная”/ группа “Редактирование”/ команда “Сортировка и фильтр”/ “Настраиваемая сортировка”. Далее, в параметрах выбираем сортировку по столбцам диапазона.
Плюсы такого варианта сортировки в том что можно сортировать Любой тип информации (как числа, так и текст). Минус такого варианта заключается в том, что если нужно отсортировать большое количество данных, придется каждую отдельную строку настраивать отдельно.
- С помощью функций НАИМЕНЬШИЙ (SMALL) или НАИБОЛЬШИЙ (LARGE). Данный способ решает проблему большого количества данных по вертикали, умело оперируя смешанными и абсолютными ссылками, можно запросто сделать горизонтальную сортировку для большого количества данных. Но у этого способа есть один существенный недостаток, который, кстати, отсутствует в первом варианте, – это возможность сортировки только числовой информации. Да, к сожалению, для текста не подойдет.
- С помощью механизма Power Query. Мы уже неоднократно использовали данный инструмент при решении конкурсных заданий ExcelWorldChamp здесь и здесь. На первый взгляд решение может показаться громоздким, однако, по мере освоения Power Query, можно привыкнуть. А, если вы планируете заниматься обработкой данных в Excel, то без использования данного инструмента сейчас просто нельзя.
Используем горизонтальную сортировку с помощью Power Query
Для совершения каких либо манипуляций в Power Query данные необходимо предварительно загрузить. На вкладке данные, в зависимости от типа источника данных пользуемся соответствующей командой. В нашем, простом случае, – это “Из таблицы/диапазона”.
В самом окне редактора Power Query переходим на вкладку “Добавление столбца”, команда “Настраиваемый столбец”. В диалоговом окне настройки столбца вводим функцию List.Sort(), в качестве аргументов передаем столбцы. По умолчанию функция сортируем по возрастанию, поэтому этот опциональный параметр нужно обязательно указывать, если сортировка нужна в убывающем порядке.
=List.Sort({[Столбец1],[Столбец2],[Столбец3],[Столбец4],[Столбец5],[Столбец6],[Столбец7]}, Order.Ascending)
что равноценно
=List.Sort({[Столбец1],[Столбец2],[Столбец3],[Столбец4],[Столбец5],[Столбец6],[Столбец7]})
а вот формула для убывающего порядка
=List.Sort({[Столбец1],[Столбец2],[Столбец3],[Столбец4],[Столбец5],[Столбец6],[Столбец7]}, Order.Descending)
Поскольку результатом получается элемент типа список, нужно определиться с дальнейшими действиями сортировки, если нужно получить столбец со значениями, выбираем опцию “Развернуть в новые строки”, однако, если идет сортировка для большого количества данных, лучше воспользоваться опцией “Извлечь значения…”. При извлечении значений все они извлекаются в одну ячейку с определенным разделителем (ну или без). Если потом возникнет необходимость разнести значения по ячейкам сделать это можно несколькими способами, мы их рассмотрели в данном материале, однако, лучшим вариантом будет воспользоваться командой “Разделить столбец” вкладки “Главная” в самом Power Query.