Макрос Транспонирования (для тех, кто часто транспонирует)
В предыдущих статьях мы с вами уже рассматривали вопрос о том, как в Excel преобразовать строку в столбец, то есть транспонировать данные. Так как на практике данная необходимость может встречается довольно часто, мы рассмотрели создание шаблона для транспонирования данных из строки в столбец с использованием функции ТРАНСП (ТРАНСП — Автоматическое транспонироване данных в Excel).
В этой статье мы рассмотрим абстрактную, более обобщенную задачу транспонирования. В этот раз мы прибегнем к использованию Макросов.
Допустим у нас есть данные на одном листе книги для транспонирования и мы хотим перевести все строки в столбцы (т.е. выполнить транспонирование). Если мы просто выделим весь лист, то при попытке транспонирования через специальную вставку (как в первой статье) мы получим ОШИБКУ. Ошибка появится из-за того, что лист Excel не квадратный, т.е. строк в нем гораздо больше чем столбцов. Отсюда мы получили ограничение для данных которые могут быть транспонированы: ширина и длина таблицы данных для транспонирования не может превышать ширины листа Excel, а именно 16 384 ячейки для MS Excel 2010.
Но для столь большого диапазона данных операция транспонирования будет проходить крайне долго (хотя, конечно, зависит от компьютера).
Если требуется выполнять операцию постоянно, то мы имеем представление о размере таблицы данных для транспонирования и потому, для ускорения операции мы можем сократить диапазон. В нашем примере до A1:X1000. Запишем вышеизложенное макросом:
Макрос копирует диапазон A1:X1000 на активном листе, создает новый лист в книге и транспонирует данные уже в новый лист.
Теперь Вы можете изменить диапазон на свой (необходимый) и использовать Макрос в работе.
он же текстом:
Sub Макрос1() Range("A1:X1000").Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True End Sub
Очень надеемся, что наша статья помогла Вам в решении Вашей проблемы. Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок расположенных ниже.
Спасибо за внимание.
SirExcel.ru – Безграничные возможности Excel
Привет, транспонирование проходит а можно в виде таблицы чтобы было,тоесть каждые 9 повторяетса и чтобы приобретала вид таблицы,и поясните значение этой формулы Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True может тут гдето чтото поменять чтобы вид таблицы получался
Как сделать невиддимое значение в ячейке (1000 и более) столбца загружаемой таблицы, для формул. Столбец из 20 строк, при загрузке появляются числа 0т 1-1999, надо чтобы формула считала все ячейки (20 значений в ячейках ) одного столбца, но без учета тех, где будут появляться числа от 1000 и более.
Значени формулы выводиться на соседнюю ячейку строки.
Макрос, желательно, включался бы при открытии странички Excel.
Вложение .xlsx
Есть такой вопрос, у меня есть массив данных в столбце, но проблема в том, что столбец размером в 45000 строк, а повторение идет через каждые 15 строчек, нету ли такой формулы, чтобы транспонирование проходило автоматически через каждые 15 строчек?
Спасибо, работает!
Указанный код не работает!
Код работает, только проверил работу.
Этот код нужно вставить в новый модуль как показано на картинке, а не на лист Excel
Вот пример файла: https://yadi.sk/i/1y2m_qcgcELyB