Научимся с помощью формул переворачивать в MS EXCEL столбец вверх ногами (чтобы данные расположенные в последних строках стали отображаться первыми).
Пусть имеется столбец с данными (Исходный столбец (столбец А)). В первой ячейке столбца (
А7
) содержится значение 10, а в последней (
А16
) — значение 100.
С помощью формулы
=СМЕЩ($A$16;(СТРОКА($A$7)-СТРОКА());)
в соседнем столбце получим перевернутый столбец (введите эту формулу в ячейку
В7
и протяните ее вниз с помощью
Маркера заполнения
).
Примечание
: Исходный столбец и формулу можно найти в
файле примера
.
Аналогичного результата можно добиться с помощью формулы
=ИНДЕКС($A$7:$A$16;ЧСТРОК(A7:$A$16))
Подробнее о работе использованных функций можно прочитать кликнув на соответствующие ссылки внизу статьи на вкладке
Использованные функции
(под кнопкой
Скачать файл примера
).
Примечание
: Чтобы повернуть столбец, т.е. транспонировать его, см. статью
Транспонирование таблиц в MS EXCEL
.
Если у вас есть таблица с данными в столбцах, которые необходимо повернуть для переупорядочивать их по строкам, используйте функцию Транспонировать. С его помощью можно быстро переключать данные из столбцов в строки и наоборот.
Например, если данные выглядят так: «Регионы продаж» в заголовках столбцов и «Кварталы» с левой стороны:
Функция Транспонировать переупомешет таблицу, в которой столбцы «Кварталы» отображаются в заголовках столбцов, а слева будут показаны регионы продаж, например:
Примечание: Если данные хранятся в таблице Excel, функция Транспонирование будет недоступна. Можно сначала преобразовать таблицу в диапазон или воспользоваться функцией ТРАНСП, чтобы повернуть строки и столбцы.
Вот как это сделать:
-
Выделите диапазон данных, который требуется переупорядочить, включая заголовки строк или столбцов, а затем нажмите клавиши CTRL+C.
Примечание: Убедитесь, что для этого нужно скопировать данные, так как не получится использовать команду Вырезать или CTRL+X.
-
Выберите новое место на том месте на компьютере, куда вы хотите ввести транспонную таблицу, чтобы вместить данные в достаточном месте. В новой таблице будут полностью переоформатироваться все данные и форматирование, которые уже есть.
Щелкните правой кнопкой мыши левую верхнюю ячейку, в которой нужно ввести транспонировать таблицу, и выберите транспонировать .
-
После успешного поворота данных можно удалить исходную таблицу, и данные в новой таблице останутся без изменений.
Советы по транспонированию данных
-
Если данные содержат формулы, Excel автоматически обновляет их в соответствие с новым расположением. Убедитесь, что в этих формулах используются абсолютные ссылки. Если они не используются, перед поворотом данных можно переключаться между относительными, абсолютными и смешанными ссылками.
-
Если вы хотите часто поворачивать данные для их просмотра под разными углами, создайте с помощью нее с помощью перетаскиванием полей из области строк в область столбцов (или наоборот)в списке полей.
Вы можете ввести в книгу данные в качестве транспон данных. Транспонировать: переупочевание содержимого скопированные ячейки при копировании. Данные строк будут вставлены в столбцы, и наоборот.
Вот как можно транспоннять содержимое ячейки:
-
Скопируйте диапазон ячеев.
-
Вы выберите пустые ячейки, в которые вы хотите ввести транспонировать данные.
-
На вкладке Главная щелкните значок Ввести и выберите Ввести транспонировать.
Просмотров: 421
Источник проблемы.
В ходе работы довольно часто встречаются ситуации, когда необходимо выполнить разворот таблиц определенным образом, в том числе разворот в обратном порядке столбцов.. Такой разворот таблиц может, к примеру, понадобиться, если требуется выполнить сортировку ячеек, расположенных по горизонтали.
Приведем пример. Мы имеем таблицу следующего вида:
Цена, а значит и сумма заказа по каждой позиции зависит от объема, то есть от количества заказанных единиц товара. В этом случае можно было бы применить функцию ГПР, но тогда цены должны быть указаны в порядке их повышения. Здесь же ситуация состоит с точностью до наоборот.
Транспонирование.
Наверное, это самый простой вариант решения проблемы. Необходимо скопировать нужную таблицу. После этого выбрать ячейку рядом и в специальной вставке выбрать вариант «транспонирование». В последних версиях Excel этот пункт вынесен в виде пиктограммы непосредственно в контекстное меню.
В результате мы переворачиваем таблицу на 90 градусов, и ее столбцы и строки поменяются местами.
Как это использовать для переворачивания исходных столбцов? Очень просто! После транспонирования надо пронумеровать строчки с нужными данными. В нашем случае это выглядит так.
После этого выделяем нужные строки вместе с добавленной нами нумерацией, и запускаем с вкладки «Данные» настраиваемую сортировку.
В появившемся окне убираем, если стоит, галочку «мои данные содержат заголовки», в качестве первого уровня показываем столбец с нашей нумерацией и выбираем вариант сортировки по убыванию.
Осталось скопировать полученный результат, но без добавленного столбца с нумерацией и с помощью транспонирования вставить его на исходное место. После этого промежуточную таблицу можно удалить.
Теперь наша таблица уже выглядит следующим образом.
Остается заметить, что, если надо поменять в обратном порядке непосредственно строки, то выполнять транспонирование не требуется.
Преимуществом данного способа является прежде всего простота и доступность, а также отсутствие формул и функций. Однако метод имеет и недостатки. Прежде всего это трудоемкость. Кроме этого, имеется ограничение на количество столбцов. На листе Excel имеется только 16384 строки. Поэтому если у вас в таблице строк больше, а я сталкивался с таблицами и в 20000 строк, и в 200000 строк, и более чем в миллион строк, так вот в таком случае способ бесполезен и все-таки придется использовать формулы и функции
Используем для переворачивания функцию ИНДЕКС.
Наверное, это самый простой вариант для разворота таблицы в обратную сторону средствами MS Excel без предварительного транспонирования, который я смог найти на просторах интернета. Суть его состоит в том, что в качестве диапазона указываем строку, в которой надо поменять столбцы местами. Номер строки задаем равной 1, а в качестве номера столбца используем дополнительную функцию ЧИСЛСТОЛБ, в которой указываем заново этот же диапазон для разворачивания, но в адресе последней ячейки в ней закрепляем только столбец, используя смешанную адресацию
Данный способ, точнее данная составная функция, проще, чем следующие варианты из сети Интернет:
=ИНДЕКС (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.
В отличии от всего этого мы использовали только две функции. Функция ИНДЕКС извлекает значение из диапазона на пересечении указанных по номеру в таблице строки и столбца. Строка была только одна, поэтому мы и написали единицу. Номер же столбца мы нашли с помощью функции ЧИСЛСТОЛБ. Вначале она показала номер последнего столбца, а затем из=-за примененной адресации этот номер стал уменьшаться и в итоге столбцы стали разворачиваться.
Учтите, что если надо было бы поменять местами строки, то надо уже указать диапазон из одного столбца. В формуле вместо единицы на месте номера строки надо было бы указать функцию ЧСТРОК и, выделив диапазон, в адресе последней ячейки уже закрепить только строку, оставив знак доллара только перед ее номером.
Применяем функцию СМЕЩ.
В данном случае необходимо добавить сверху таблицы новую строку и пронумеровать в ней нужные столбцы в обратном порядке, начиная с нуля. Удобно это сделать с помощью простой формулы, как на рисунке. Первый нуль мы указываем, конечно, сами с клавиатуры.
Формула же для разворачивания столбцов в обратном порядке будет уже выглядеть следующей. Мы будем использовать функцию СМЕЩ. В качестве исходного диапазона зададим последнюю ячейку в текущей обрабатываемой строке с закреплением только столбца, перемещение по строкам зададим равным 0, а смещение по столбцам сделаем равным первой ячейке в добавленной нами сверху строке, то есть нулю, и закрепим в адресе этой ячейке номер строки.
Результат перед вами. И обратите внимание на адресацию!
Действия после разворачивания таблицы и итоги работы.
Теперь, когда таблица развернута в противоположном по столбцам направлении, уже можно применить в частности функцию ГПР.
В данном случае она будет выглядеть так.
Более подробно о функциях ВПР и ГПР мы поговорим на следующих уроках.
Наше же текущее занятие подошло к концу. Желаю всем безошибочной работы и профессионализма на практике. Помните, что многие действия могут быть выполнены гораздо проще, чем кажется вначале. Не зря еще дедушка Крылов обронил в свое время фразу: «На мудреца довольно простоты … А ларчик просто открывался…
Всем успехов и уверенности в своих силах. Экспериментируйте, будьте аккуратными и внимательным и все будет получаться и становиться простым и легким!.
Переворачиваем с помощью сортировки
Для применения данного метода не требуется формул. Более того, сами перемещаемые пр развороте столбцы остаются в пределах своего диапазона, что так же является значитпельным плюсом. К тому же данный спгособ позволяет не только развернуть таблицу слева гнаправа, но и вывести колонки в любом порядке. Все очень просто. ПРедположим, нам надо развернуть стобцыв в таблице, рассмотренной выше. Для этого:
добавляем строку с нужным порядком столбцов. Ее можно добавить как выше заголовка таблицы, так и под ней. Выберем первый вариант.
Выделяем нужные столбцы вместе с добавленной номинацией и запускаем настраиваемую сортировку. В частности, это можно сделать с вкладки «Данные». Заходим в параметры и а выбираем вариант «Сортировать по столбцам диапазона»
Возвращаемся в настройку сортировки. В пункте «Сортировать по» указываем строку с заданным на первом этапе порядком столбцов и нажимаем ОК
Готово! Согласитесь, простой способ?
Бывают ситуации, когда вам нужно «перевернуть» вашу табличку. То есть сделать так, чтобы данные, которые находятся вверху — были внизу.
И да, это удивительно, но в программе нет специальной функции для этого.
Конечно же, мы можем сделать это сразу несколькими методами. Но именно своей функции для такой задачи в Excel нет.
Итак, начнём!
Содержание
- С помощью функции «Сортировка»
- По вертикали
- По горизонтали
- C помощью СОРТПО и ИНДЕКС
- С помощью СОРТПО
- С помощью ИНДЕКС
- С помощью Visual Basic
С помощью функции «Сортировка»
Это, наверное, самый быстрый и удобный метод.
По вертикали
Допустим, нам нужно отсортировать данные в обратном порядке, для следующей таблички:
Пошаговая инструкция:
- Создайте столбик для расчетов (мы назовем его «Helper»);
- Выделите табличку и щелкните на «Данные»;
- Далее — «Сортировка»;
- В первом параметре сортировки выберите наш столбик для расчетов;
- А в третьем — «По убыванию»;
- Подтвердите.
Готово! Вот результат:
После сортировки можно удалить столбик для расчетов.
Мы рассмотрели табличку, в которой есть только один столбик с данными(не считая имен). Но его можно использовать независимо от того, сколько у вас столбиков с данными.
По горизонтали
Практически тоже самое с табличками по горизонтали.
Итак, давайте рассмотрим такой пример.
Допустим, у нас есть такая табличка:
Пошаговая инструкция:
- Создаем столбик для расчетов, только теперь это не столбик, а строка. Так как табличка у нас горизонтальная;
- Открываем «Сортировка»;
- Жмем «Параметры…»;
- И выберите «Столбцы диапазона»;
- Подтвердите;
- В первом параметре выберите ту строку, которая является строкой для расчетов.
- В третьем параметре — «По убыванию»;
- Подтвердите.
Готово! Вот результат:
После сортировки можете смело удалять строку для расчетов.
C помощью СОРТПО и ИНДЕКС
Функция ИНДЕКС доступна для всех, а вот функция СОРТПО доступна только по платной подписке Office 365.
С помощью СОРТПО
Допустим, у нас есть такая табличка:
Создадим еще два столбика, с теме же заголовками. Там будет наша обработанная табличка.
Формула функции примет такой вид:
=СОРТПО($A$2:$B$12;СТРОКА(A2:A12);-1)
Сортировка происходит по данным, полученным из функции СТРОКА.
Она создает массив с порядковыми номерами строк.
А последний аргумент в функции (“-1”) говорит Excel о том, что нам нужен порядок «По убыванию».
Вот, собственно, и все!
С помощью ИНДЕКС
Мало кто пользуется Microsoft 365 и платит за подписку, но не переживайте, если вы из таких людей, то для вас есть выход!
Допустим, у нас та же табличка:
Формула примет такой вид:
=ИНДЕКС($A$2:$A$12;СТРОКА(A2:$A$12))
Что мы сделали?
Функция СТРОКА, в результате выполнения, отдает нам кол-во строчек в диапазоне ячеек.
И этот результат будет становиться меньше и меньше.
А ИНДЕКС, по номеру строки, отдает нам значение этой строки. Таким образом мы получаем порядок «По убыванию».
Так же, как и в предыдущих методах, функцию можно использовать в табличке с несколькими столбиками данных. Но, в аргументе, вам нужно будет указать, откуда функции брать данные для обработки.
Допустим, у вас есть такая табличка:
Формула примет такой вид:
=ИНДЕКС($A$2:$B$12;СТРОКА(A2:$A$12);СТОЛБЕЦ($A$2:A2))
Все также, только мы дополнительно указали столбик, откуда функция ИНДЕКС должна брать данные и помещать в новые ячейки.
Если вы решили отсортировать данные — помните, что отменить сортировку у вас не получится. Если исходная сортировка для вас важна, то сделайте копию оригинальной таблички.
С помощью Visual Basic
И, как обычно, рассмотрим метод с Visual Basic.
Это решение отлично подойдет для тех, кто использует такую сортировку очень часто.
Вот нужный нам код Visual Basic:
Sub FlipVerically()
Dim TopRow As Variant
Dim LastRow As Variant
Dim StartNum As Integer
Dim EndNum As Integer
Application.ScreenUpdating = False
StartNum = 1
EndNum = Selection.Rows.Count
Do While StartNum < EndNum
TopRow = Selection.Rows(StartNum)
LastRow = Selection.Rows(EndNum)
Selection.Rows(EndNum) = TopRow
Selection.Rows(StartNum) = LastRow
StartNum = StartNum + 1
EndNum = EndNum - 1
Loop
Application.ScreenUpdating = True
End Sub
Очень важно, если вы хотите использовать функцию, которую мы создали с помощью этого кода — не выделяйте заголовки таблички.
Куда нужно поместить код?
Пошаговая инструкция:
- ALT + F11;
- Правой кнопкой мышки на любой лист -> «Insert» -> «Module»;
- В открывшееся окошко вставьте наш код и закройте Visual Basic;
А дальше, чтобы использовать функцию — выделите табличку и нажмите «Run Macro» (или F5).
В этой статье, я рассказал вам о том, как можно отсортировать данные в обратном порядке. Мы рассмотрели как сделать это с помощью встроенной функции “Сортировка”, с помощью СОРТПО и ИНДЕКС, а также Visual Basic.
Надеюсь, эта статья оказалась полезна для вас!
Обратный порядок элементов в списке
Банальная, на первый взгляд, задача, периодически встречающаяся в работе почти любого пользователя Microsoft Excel – расположить элементы списка в обратном порядке. При всей кажущейся простоте, здесь есть свои «фишки» — давайте разберем несколько вариантов ее решения.
Способ 1. Ручная сортировка по доп.столбцу
Это обычно первое, что приходит в голову. Добавляем рядом с нашим списком еще один столбец с порядковыми номерами и сортируем по этому столбцу по убыванию:
Очевидный плюс такого подхода в простоте. Очевидный же минус в том, что нужно руками проделать энное количество операций. Если это разовая задача — ОК, но если данные меняются каждый день, то сортировать список постоянно вручную уже напрягает. Выходом может стать использование формул.
Способ 2. Обратный порядок формулой
Поскольку формулы в Excel пересчитываются автоматически (если включен ручной режим пересчета), то и сортировка, реализованная формулами, будет происходить «на лету», без какого либо участия пользователя.
Нужная нам формула, размещающая элементы списка в обратном порядке может выглядеть так:
Недостаток этой формулы в том, что в ней должны жестко задаваться начало и конец списка (ячейки A2 и A9 в нашем случае). Если заранее точно не известно, сколько именно элементов будет в списке, то лучше использовать другой подход:
В этой формуле номер последней занятой ячейки подсчитывается с помощью функции СЧЁТЗ (COUNTA), т.е. количество элементов в исходном списке может впоследствии меняться.
Минус этого варианта — в исходном списке не должно быть пустых ячеек, т.к. функция СЧЁТЗ тогда неправильно вычислит номер строки последнего элемента. Выходом может стать использование динамического именованного диапазона с автоподстройкой размеров либо хитрой формулы массива:
Как легко заметить, это вариация первого способа, где диапазон взят «с запасом» сразу до сотой строки и номер строки последней заполненной ячейки задается не жестко, а вычисляется с помощью фрагмента МАКС(($A$2:$A$100<>»»)*СТРОКА($A$2:$A$100))
Каждая ячейка в диапазоне A2:A100 проверяется на заполненность с помощью выражения ($A$2:$A$100<>»»), что даст на выходе массив значений ИСТИНА и ЛОЖЬ. Затем этот массив поэлементно умножается на массив номеров строк, получаемый с помощью функции СТРОКА($A$2:$A$100). Поскольку логическую ИСТИНУ Excel интерпретирует как 1, а ЛОЖЬ – как 0, то после умножения мы получим массив номеров заполненных ячеек. А уже из него функция МАКС (MAX) выбирает самое большое число, т.е. номер последней заполненной строки.
И, само-собой, не забудьте после ввода этой формулы нажать не обычный Enter, а сочетание Ctrl+Shift+Enter, чтобы ввести ее как формулу массива.
Способ 3. Макрос
Если хочется реализовать перекладывание значений ячеек в обратном порядке без дополнительного столбца с формулами, т.е. прямо в исходных ячейках, то не обойтись без простого макроса.
Нажмите сочетание Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer). Вставьте новый пустой модуль через меню Insert — Module и скопируйте туда текст макроса:
Sub Reverse() Dim arrData(), n As Long arrData = Selection For Each cell In Selection cell.Value = arrData(UBound(arrData) - n, 1) n = n + 1 Next cell End Sub
Теперь, если выделить столбец-список с данными и запустить наш макрос с помощью сочетания Alt+F8 или команды Разработчик — Макросы (Developer — Macros), то список развернется в обратном порядке прямо в тех же ячейках, т.е. на месте.
Ссылки по теме
- Как создать в Excel динамический именованный диапазон с автоподстройкой размеров
- Что такое формулы массива и как их использовать
- Хитрости сортировки в MS Excel