Переворачиваем таблицы в обратную сторону средствами MS Excel

Views: 3095

Источник проблемы.  

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

Приведем пример. Мы имеем таблицу следующего вида:

Perevorot

Цена, а значит и сумма заказа по каждой позиции зависит от объема, то есть от количества заказанных единиц товара. В этом случае можно было бы применить функцию ГПР, но тогда цены должны быть указаны в порядке их повышения. Здесь же ситуация состоит с точностью до наоборот.

Транспонирование.

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

Perevorot

В результате мы переворачиваем таблицу на 90 градусов, и ее столбцы и строки поменяются местами.Perevorot

Как это использовать для переворачивания исходных столбцов? Очень просто! После транспонирования надо пронумеровать строчки с нужными данными. В нашем случае это выглядит так.

Perevorot

После этого выделяем нужные строки вместе с добавленной нами нумерацией, и запускаем с вкладки «Данные» настраиваемую сортировку.

Perevorot

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

Perevorot

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

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

Perevorot

Остается заметить, что, если надо поменять в обратном порядке  непосредственно строки, то выполнять транспонирование не требуется.

Преимуществом данного способа является прежде всего простота и доступность, а также отсутствие формул и функций. Однако метод имеет и недостатки. Прежде всего это трудоемкость.  Кроме этого, имеется ограничение на количество столбцов. На листе Excel имеется только 16384 строки. Поэтому если у вас в таблице строк больше, а я сталкивался с таблицами и в 20000 строк, и в 200000 строк, и более чем в миллион строк, так вот в таком случае способ бесполезен и все-таки придется использовать формулы и функции

Используем для переворачивания функцию ИНДЕКС.

Наверное, это самый простой вариант для разворота таблицы в обратную сторону средствами MS Excel без предварительного транспонирования, который я смог найти на просторах интернета. Суть его состоит в том, что в качестве диапазона указываем строку, в которой надо поменять столбцы местами. Номер строки задаем равной 1, а в качестве номера столбца используем дополнительную функцию ЧИСЛСТОЛБ, в которой указываем заново этот же диапазон для разворачивания, но в адресе последней ячейки в ней закрепляем только столбец, используя смешанную адресацию

Perevorot

Данный способ, точнее данная составная функция, проще, чем следующие варианты из сети Интернет:

=ИНДЕКС (A$1:A$6;ЧСТРОК (A$1:A$6)+СТРОКА (A$1)-СТРОКА ()) =СМЕЩ ($A$6;(СТРОКА ()-СТРОКА ($A$1))*-1;0)

=ИНДЕКС ($A$1:$A$6;СЧЁТЗ ($A$1:$A$6)-СТРОКА ()+1)

=ИНДЕКС (A:A;СЧЁТЗ (A:A)-СТРОКА ()+1)

=ИНДЕКС (A$1:A$6;7-СТРОКА ()) {=ИНДЕКС ($A$1:$A$6;НАИБОЛЬШИЙ (СТРОКА ($A$1:$A$6)*ЕЧИСЛО ($A$1:$A$6);СТРОКА (1:1)))} это формула массива завершается ввод нажатием Ctrl+Shift+Enter.

В отличии от всего этого мы использовали только две функции. Функция ИНДЕКС извлекает значение из диапазона на пересечении указанных по номеру в таблице строки и столбца. Строка была только одна, поэтому мы и написали единицу. Номер же столбца мы нашли с помощью функции ЧИСЛСТОЛБ. Вначале она показала номер последнего столбца, а затем из=-за примененной адресации этот номер стал уменьшаться и в итоге столбцы стали разворачиваться.

Учтите, что если надо было бы поменять местами строки, то надо уже указать диапазон из одного столбца. В формуле вместо единицы на месте номера строки надо было бы указать функцию ЧСТРОК и, выделив диапазон, в адресе последней ячейки уже закрепить только строку, оставив знак доллара только перед ее номером.

Применяем функцию СМЕЩ.

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

Perevorot

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

Результат перед вами. И обратите внимание на адресацию!

Perevorot

Действия после разворачивания таблицы и итоги работы.

Теперь, когда таблица развернута в противоположном по столбцам направлении, уже можно применить в частности функцию ГПР.

В данном случае она будет выглядеть так.

Perevorot

Более подробно о функциях ВПР и ГПР мы поговорим на следующих уроках.

Наше же текущее занятие подошло к концу. Желаю всем безошибочной работы и профессионализма на практике. Помните, что многие действия могут быть выполнены гораздо проще, чем кажется вначале. Не зря еще дедушка Крылов обронил в свое время фразу: «На мудреца довольно простоты … А ларчик просто открывался…

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

Переворачиваем с помощью сортировки

Для применения данного метода не требуется формул. Более того, сами перемещаемые пр развороте столбцы остаются в пределах своего диапазона, что так же является значитпельным плюсом. К тому же данный спгособ позволяет не только развернуть таблицу слева гнаправа, но и вывести колонки в любом порядке. Все очень просто. ПРедположим, нам надо развернуть стобцыв в таблице, рассмотренной выше. Для этого:

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

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

Возвращаемся в настройку сортировки. В пункте «Сортировать по» указываем строку с заданным на первом этапе порядком столбцов и нажимаем ОК

Готово! Согласитесь, простой способ?