Обратный порядок элементов в списке
Банальная, на первый взгляд, задача, периодически встречающаяся в работе почти любого пользователя 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
Просмотров: 432
Источник проблемы.
В ходе работы довольно часто встречаются ситуации, когда необходимо выполнить разворот таблиц определенным образом, в том числе разворот в обратном порядке столбцов.. Такой разворот таблиц может, к примеру, понадобиться, если требуется выполнить сортировку ячеек, расположенных по горизонтали.
Приведем пример. Мы имеем таблицу следующего вида:
Цена, а значит и сумма заказа по каждой позиции зависит от объема, то есть от количества заказанных единиц товара. В этом случае можно было бы применить функцию ГПР, но тогда цены должны быть указаны в порядке их повышения. Здесь же ситуация состоит с точностью до наоборот.
Транспонирование.
Наверное, это самый простой вариант решения проблемы. Необходимо скопировать нужную таблицу. После этого выбрать ячейку рядом и в специальной вставке выбрать вариант «транспонирование». В последних версиях 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, а смещение по столбцам сделаем равным первой ячейке в добавленной нами сверху строке, то есть нулю, и закрепим в адресе этой ячейке номер строки.
Результат перед вами. И обратите внимание на адресацию!
Действия после разворачивания таблицы и итоги работы.
Теперь, когда таблица развернута в противоположном по столбцам направлении, уже можно применить в частности функцию ГПР.
В данном случае она будет выглядеть так.
Более подробно о функциях ВПР и ГПР мы поговорим на следующих уроках.
Наше же текущее занятие подошло к концу. Желаю всем безошибочной работы и профессионализма на практике. Помните, что многие действия могут быть выполнены гораздо проще, чем кажется вначале. Не зря еще дедушка Крылов обронил в свое время фразу: «На мудреца довольно простоты … А ларчик просто открывался…
Всем успехов и уверенности в своих силах. Экспериментируйте, будьте аккуратными и внимательным и все будет получаться и становиться простым и легким!.
Переворачиваем с помощью сортировки
Для применения данного метода не требуется формул. Более того, сами перемещаемые пр развороте столбцы остаются в пределах своего диапазона, что так же является значитпельным плюсом. К тому же данный спгособ позволяет не только развернуть таблицу слева гнаправа, но и вывести колонки в любом порядке. Все очень просто. ПРедположим, нам надо развернуть стобцыв в таблице, рассмотренной выше. Для этого:
добавляем строку с нужным порядком столбцов. Ее можно добавить как выше заголовка таблицы, так и под ней. Выберем первый вариант.
Выделяем нужные столбцы вместе с добавленной номинацией и запускаем настраиваемую сортировку. В частности, это можно сделать с вкладки «Данные». Заходим в параметры и а выбираем вариант «Сортировать по столбцам диапазона»
Возвращаемся в настройку сортировки. В пункте «Сортировать по» указываем строку с заданным на первом этапе порядком столбцов и нажимаем ОК
Готово! Согласитесь, простой способ?
На чтение 4 мин Просмотров 1к. Опубликовано 27.04.2022
Бывают ситуации, когда вам нужно «перевернуть» вашу табличку. То есть сделать так, чтобы данные, которые находятся вверху — были внизу.
И да, это удивительно, но в программе нет специальной функции для этого.
Конечно же, мы можем сделать это сразу несколькими методами. Но именно своей функции для такой задачи в 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.
Надеюсь, эта статья оказалась полезна для вас!
Содержание:
- Отразить данные с помощью SORT и вспомогательного столбца
- Переверните данные по вертикали (обратный порядок вверх ногами)
- Отразить данные по горизонтали
- Отразить данные с помощью формул
- Использование функции СОРТБИ (доступно в Microsoft 365)
- Использование функции ИНДЕКС
- Перевернуть данные с помощью VBA
Иногда вам может потребоваться перевернуть данные в Excel, то есть изменить порядок данных вверх ногами в вертикальном наборе данных и слева направо в горизонтальном наборе данных.
Если вы думаете, что для этого в Excel должна быть встроенная функция, боюсь, вы будете разочарованы.
Хотя есть несколько способов перевернуть данные в Excel, встроенной функции нет. Но вы можете легко сделать это, используя простой трюк сортировки, формулы или VBA.
В этом руководстве я покажу вам, как переворачивать данные в строках, столбцах и таблицах в Excel.
Итак, приступим!
Отразить данные с помощью SORT и вспомогательного столбца
Один из самых простых способов изменить порядок данных в Excel — использовать вспомогательный столбец, а затем использовать этот вспомогательный столбец для сортировки данных.
Переверните данные по вертикали (обратный порядок вверх ногами)
Предположим, у вас есть набор данных с именами в столбце, как показано ниже, и вы хотите перевернуть эти данные:
Ниже приведены шаги, чтобы перевернуть данные по вертикали:
- В соседнем столбце введите «Помощник» в качестве заголовка столбца.
- В столбце помощника введите ряд чисел (1, 2, 3 и т. Д.). Вы можете использовать показанные здесь методы, чтобы сделать это быстро.
- Выберите весь набор данных, включая вспомогательный столбец
- Перейдите на вкладку «Данные«.
- Щелкните значок сортировки
- В диалоговом окне «Сортировка» выберите «Помощник» в раскрывающемся списке «Сортировать по».
- В раскрывающемся списке «Порядок» выберите «От наибольшего к наименьшему».
- Нажмите ОК.
Вышеупомянутые шаги будут отсортировать данные на основе значений вспомогательных столбцов, что также приведет к изменению порядка имен в данных на обратный.
После этого можете удалить вспомогательный столбец.
В этом примере я показал вам, как переворачивать данные, когда у вас всего один столбец, но вы также можете использовать тот же метод, если у вас есть вся таблица. Просто убедитесь, что вы выбрали всю таблицу, а затем использовали вспомогательный столбец для сортировки данных в порядке убывания.
Отразить данные по горизонтали
Вы также можете использовать ту же методику, чтобы перевернуть данные в Excel по горизонтали.
В Excel есть возможность сортировать данные по горизонтали с помощью диалогового окна «Сортировка» (функция «Сортировать слева направо»).
Предположим, у вас есть таблица, показанная ниже, и вы хотите перевернуть эти данные по горизонтали.
Ниже приведены шаги для этого:
- В строке ниже введите «Помощник» в качестве заголовка строки.
- Во вспомогательной строке введите ряд чисел (1, 2, 3 и т. Д.).
- Выберите весь набор данных, включая вспомогательную строку
- Перейдите на вкладку «Данные«.
- Щелкните значок сортировки
- В диалоговом окне «Сортировка» нажмите кнопку «Параметры«.
- В открывшемся диалоговом окне нажмите «Сортировать слева направо».
- Нажмите ОК.
- В раскрывающемся списке «Сортировать по» выберите строку 3 (или любую другую строку, в которой есть вспомогательный столбец).
- В раскрывающемся списке «Порядок» выберите «От наибольшего к наименьшему».
- Нажмите ОК.
Вышеупомянутые шаги перевернут всю таблицу по горизонтали.
После этого вы можете удалить вспомогательную строку.
Отразить данные с помощью формул
В Microsoft 365 появилось несколько новых формул, которые позволяют очень легко изменить порядок столбца или таблицы в Excel.
В этом разделе я покажу вам, как это сделать, используя формулу СОРТБИ (если вы используете Microsoft 365) или формулу ИНДЕКС (если вы не используете Microsoft 365).
Использование функции СОРТБИ (доступно в Microsoft 365)
Предположим, у вас есть таблица, показанная ниже, и вы хотите перевернуть данные в этой таблице:
Для этого сначала скопируйте заголовки и поместите их там, где вы хотите, чтобы перевернутая таблица.
Теперь используйте следующую формулу под ячейкой в крайнем левом заголовке:= СОРТИРОВАТЬ ($ A $ 2: $ B $ 12; СТРОКА (A2: A12); - 1)
Приведенная выше формула сортирует данные и использует результат функции СТРОКА в качестве основы для их сортировки.
Функция ROW в этом случае вернет массив чисел, который представляет номера строк между указанным диапазоном (который в этом примере будет серией чисел, таких как 2, 3, 4 и т. Д.).
А поскольку третий аргумент этой формулы равен -1, это заставит формулу сортировать данные в порядке убывания.
Запись с наивысшим номером строки будет наверху, а запись с наименьшим номером правила — внизу, что существенно меняет порядок данных.
После этого вы можете преобразовать формулу в значения, чтобы получить статическую таблицу.
Использование функции ИНДЕКС
Если у вас нет доступа к функции СОРТИРОВКА, не беспокойтесь — вы можете использовать удивительную функцию ИНДЕКС.
Предположим, у вас есть набор данных с именами, как показано ниже, и вы хотите перевернуть эти данные.
Ниже приведена формула для этого:= ИНДЕКС ($ A $ 2: $ A $ 12, СТРОКИ (A2: $ A $ 12))
Как работает эта формула?
В приведенной выше формуле используется функция ИНДЕКС, которая возвращает значение из ячейки на основе числа, указанного во втором аргументе.
Настоящая магия происходит во втором аргументе, где я использовал функцию ROWS.
Поскольку я заблокировал вторую часть ссылки в функции ROWS, в первой ячейке она вернет количество строк между A2 и A12, которое будет равно 11.
Но когда он идет вниз по строкам, первая ссылка изменится на A3, а затем на A4 и так далее, в то время как вторая ссылка останется как есть, потому что я заблокировал ее и сделал ее абсолютной.
По мере того, как мы спускаемся по строкам, результат функции ROWS будет уменьшаться на 1, с 11 до 10, до 9 и так далее.
А поскольку функция ИНДЕКС возвращает нам значение на основе числа во втором аргументе, это в конечном итоге даст нам данные в обратном порядке.
Вы можете использовать ту же формулу, даже если у вас есть несколько столбцов в наборе данных. однако вам нужно будет указать второй аргумент, который будет указывать номер столбца, из которого должны быть извлечены данные.
Предположим, у вас есть набор данных, показанный ниже, и вы хотите изменить порядок всей таблицы в обратном порядке:
Ниже приведена формула, которая сделает это за вас:= ИНДЕКС ($ A $ 2: $ B $ 12, СТРОКИ (A2: $ A $ 12), КОЛОННЫ ($ A $ 2: A2))
Это аналогичная формула, в которой я также добавил третий аргумент, определяющий номер столбца, из которого должно быть извлечено значение.
Чтобы сделать эту формулу динамической, я использовал функцию COLUMNS, которая продолжала бы изменять значение столбца с 1 на 2 до 3, когда вы копируете его вправо.
После этого вы можете преобразовать формулы в значения, чтобы получить статический результат.
Примечание. При использовании формулы для изменения порядка набора данных в Excel исходное форматирование не сохраняется. Если вам также нужно исходное форматирование для отсортированных данных, вы можете применить его вручную или скопировать и вставить форматирование из исходного набора данных в новый отсортированный набор данных.
Перевернуть данные с помощью VBA
Если перелистывание данных в Excel — это то, что вам нужно делать довольно часто, вы также можете попробовать метод VBA.
С помощью кода макроса VBA вы можете один раз скопировать и вставить его в книгу в редакторе VBA, а затем повторно использовать его снова и снова в той же книге.
Вы также можете сохранить код в личной книге макросов или как надстройку Excel и иметь возможность использовать его в любой книге в вашей системе.
Ниже приведен код VBA, который перевернет выбранные данные на листе по вертикали.Sub FlipVerically () 'Code by Sumit Bansal с TrumpExcel.com 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 приложение цикла. ScreenUpdating = True End Sub
Чтобы использовать этот код, вам сначала нужно выбрать набор данных, который вы хотите отменить (исключая заголовки), а затем запустить этот код.
Как работает этот код?
Приведенный выше код сначала подсчитывает общее количество строк в наборе данных и присваивает его переменной EndNum.
Затем он использует цикл Do While, в котором происходит сортировка данных.
Он сортирует эти данные, беря первую и последнюю строки и меняя их местами. Затем он переходит во вторую строку во второй последней строке и меняет их местами. Затем он переходит в третий ряд в третьем последнем ряду и так далее.
Цикл заканчивается, когда вся сортировка завершена.
Он также использует свойство Application.ScreenUpdating и устанавливает для него значение FALSE во время выполнения кода, а затем возвращает его в значение TRUE, когда код завершает работу.
Это гарантирует, что вы не увидите изменений, происходящих в реальном времени на экране, а также ускоряет процесс.
Как пользоваться кодом?
Выполните следующие действия, чтобы скопировать и вставить этот код в редактор VB:
- Откройте файл Excel, в который вы хотите добавить код VBA.
- Удерживая клавишу ALT, нажмите клавишу F11 (вы также можете перейти на вкладку Разработчик и щелкнуть значок Visual Basic)
- В открывшемся редакторе Visual Basic в левой части редактора VBA будет Project Explorer. Если вы его не видите, перейдите на вкладку «Просмотр», а затем нажмите «Обозреватель проекта».
- Щелкните правой кнопкой мыши любой из объектов книги, в которую вы хотите добавить код.
- Перейдите к опции «Вставить» и нажмите «Модуль». Это добавит новый модуль в книгу
- Дважды щелкните значок модуля в проводнике проекта. Это откроет окно кода для этого модуля
- Скопируйте и вставьте приведенный выше код VBA в окно кода.
Чтобы запустить код макроса VBA, сначала выберите набор данных, который вы хотите перевернуть (за исключением заголовков).
Выбрав данные, перейдите в редактор VB и нажмите зеленую кнопку воспроизведения на панели инструментов или выберите любую строку в коде и затем нажмите клавишу F5.
Итак, это некоторые из методов, которые вы можете использовать для переворота данных в Excel (т. Е. Обратного порядка набора данных).
Все методы, которые я рассмотрел в этом руководстве (формулы, функция СОРТИРОВКИ и VBA), можно использовать для переворота данных по вертикали и горизонтали (вам нужно будет соответствующим образом настроить формулу и код VBA для горизонтального переворота данных).
Надеюсь, вы нашли этот урок полезным.
На чтение 5 мин Опубликовано 26.01.2021
Транспонирование таблиц – функция, о которой знают не все пользователи Microsoft Excel. Она предназначена для случаев, когда необходимо изменить ориентацию диапазона ячеек с вертикальной на горизонтальную или наоборот. Программа также позволяет повернуть один столбец так, чтобы данные шли в обратном порядке – это пригодится, если информация занесена неправильно. Выясним, как поменять расположение данных на листе без необходимости переписывать все целиком.
Содержание
- Транспонирование таблицы Excel специальной вставкой
- Как перевернуть таблицу с помощью функции
- Транспонирование с использованием сводной таблицы
- Как перевернуть один столбец функцией
- Заключение
Транспонирование таблицы Excel специальной вставкой
Бывают ситуации, когда в таблицу уже занесены все данные, но нужно было оформить содержимое шапки по вертикали. Для этого можно воспользоваться инструментом «Специальная вставка» – в его меню содержится несколько настроек, позволяющих регулировать вставку таблицы на новое место. Возьмем любую таблицу, где есть шапка, и испробуем на ней специальную вставку.
- Выделим диапазон ячеек целиком и копируем его с помощью комбинации клавиш «Ctrl+C». Можно также кликнуть правой кнопкой мыши и выбрать в контекстном меню пункт «Копировать».
- На новом листе или в другой части того же листа находим свободное место, куда нужно вставить таблицу. Нажимаем правую кнопку мыши, поместив курсор на одну из ячеек, и выбираем пункт «Специальная вставка». В некоторых версиях Microsoft Excel при наведении на этот элемент меню сразу открываются опции, но нужно найти в нижней части дополнительного меню пункт «Специальная вставка» и кликнуть по нему.
- Диалоговое окно содержит несколько опций, позволяющих вставить отдельные данные из таблицы на новое место. Поставим галочку в графе «Транспонировать» и нажмем «ОК».
- Теперь шапка таблицы находится в первом столбце, а данные оттуда переместились в верхнюю строку. На такой таблице также хорошо заметна разница между объемами продаж.
Как перевернуть таблицу с помощью функции
Мастер функций содержит формулу, с помощью которой можно поменять строки и столбцы в таблице местами. Придется снова скопировать данные и вставить их в другой диапазон ячеек, чтобы увидеть изменения.
- Переходим в «Параметры» и в разделе «Работа с формулами/Формулы» ставим галочку в графе «Стиль ссылок R1C1». Это понадобится в будущем для корректной работы с формулой. Если этот шаг не будет пройден, не получится добавить массив данных в функцию.
- Определяем место, где будет находиться измененная таблица и добавляем функцию ТРАНСП в первую ячейку. Формулу можно найти в Мастере функций или записать вручную – потребуется только буквенное обозначение и круглые скобки.
Обратите внимание! Если используете меню Мастер функций для поиска формул, следует открыть категорию «Ссылки и массивы». Записывая формулу вручную, обязательно ставьте в начале знак равенства.
- Переходим на лист с начальной таблицей и выделяем ее, чтобы диапазон ячеек попал в формулу. После нажимаем «ОК». Таблица пока не перенесена полностью, но это нормально – требуется еще два шага.
- На листе с функцией выделяем ячейки в таком соотношении, в каком они окажутся после переворота. Например, в таблице-примере 7 строки и 4 столбца – это значит, что требуется выделить 4 строки и 7 столбцов.
- Воспользуемся комбинацией клавиш, чтобы формула подействовала. Сначала нажмите F2 – если на эту кнопку установлены функции, найдите клавишу, останавливающую их срабатывание, и зажмите ее. Формула в ячейке развернется. Далее быстро нажмите три клавиши: Ctrl, Shift, Enter. В выделенном диапазоне появится перевернутая таблица.
Транспонирование с использованием сводной таблицы
Составление сводных таблиц помогает во многих случаях при использовании Excel. Эта опция пригодится и при транспонировании. С помощью сводной таблицы можно только переместить столбцы на место строк, но не наоборот. У такого метода есть и преимущества – пользователи могут отфильтровать данные в таблице.
- Выделяем курсором исходный диапазон ячеек.
- Переходим на вкладку «Вставка» на панели инструментов и находим кнопку «Сводная таблица».
- Настройте формирование сводной таблицы в диалоговом окне. Там указывается диапазон ячеек – он уже выбран – и место вставки. Выберите новый лист, чтобы без затруднений управлять новым диапазоном данных.
- Распределяем поля в списке по категориям. Содержимое столбцов должно относиться к строкам, и наоборот.
- Открываем вкладку «Конструктор» и отключаем общие и промежуточные итоги для строк и столбцов.
- В результате получается таблица с теми же значениями, но строки и столбцы изменили свое положение.
Как перевернуть один столбец функцией
Если в таблице Excel есть столбец, в котором значения располагаются в обратном порядке, его можно перевернуть с помощью Мастера функций. Существует две формулы, помогающие развернуть столбец «вверх ногами».
- Вставляем в ячейку, с которой начнется перевернутый столбец, функцию СМЕЩ или ИНДЕКС. Можете воспользоваться этими шаблонами, но не забудьте вставить значения, соответствующие расположению ячеек в вашей таблице: =СМЕЩ($A$8;(СТРОКА($A$2)-СТРОКА());) или =ИНДЕКС($A$2:$A$8;ЧСТРОК(A2:$A$8)).
- Для примера воспользуемся функцией СМЕЩ – добавим ее в ячейку и нажмем Enter.
- Зажимаем маркер заполнения – черный квадрат в правом нижнем углу ячейки – и вытягиваем выделение до конца столбца. Все ячейки будут заполнены в соответствии с планом, то есть в обратном порядке.
- Результат заполнения столбца с помощью функции ИНДЕКС выглядит так:
Важно! Не обязательно, чтобы столбцы находились рядом, ссылки в формулах все равно ведут к нужным ячейкам. Это знание пригодится, чтобы составить перевернутый столбец вне цельной таблицы.
Заключение
Большинство методов переворота таблиц, или транспонирования, работают в обе стороны. Пользователь может сделать вертикально ориентированный диапазон ячеек горизонтальным или сделать шапкой названия строк. Для двухстороннего транспонирования не подходят только сводные таблицы. Наиболее простой способ повернуть таблицу – применение специальной вставки.
Оцените качество статьи. Нам важно ваше мнение: