Макрос Транспонирования (для тех, кто часто транспонирует)

В предыдущих статьях мы с вами уже рассматривали вопрос о том, как в 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

 

Поделиться:
6 Комментариев
  • Сергей says:

    Привет, транспонирование проходит а можно в виде таблицы чтобы было,тоесть каждые 9 повторяетса и чтобы приобретала вид таблицы,и поясните значение этой формулы Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True может тут гдето чтото поменять чтобы вид таблицы получался

  • Сергей says:

    Как сделать невиддимое значение в ячейке (1000 и более) столбца загружаемой таблицы, для формул. Столбец из 20 строк, при загрузке появляются числа 0т 1-1999, надо чтобы формула считала все ячейки (20 значений в ячейках ) одного столбца, но без учета тех, где будут появляться числа от 1000 и более.
    Значени формулы выводиться на соседнюю ячейку строки.
    Макрос, желательно, включался бы при открытии странички Excel.

  • Алексей says:

    Вложение  .xlsx

    Есть такой вопрос, у меня есть массив данных в столбце, но проблема в том, что столбец размером в 45000 строк, а повторение идет через каждые 15 строчек, нету ли такой формулы, чтобы транспонирование проходило автоматически через каждые 15 строчек?

  • Леся says:

    Спасибо, работает!

  • utyf says:

    Указанный код не работает!

    • excel says:

      Код работает, только проверил работу.
      Этот код нужно вставить в новый модуль как показано на картинке, а не на лист Excel
      Куда скопировать макрос

      Вот пример файла: https://yadi.sk/i/1y2m_qcgcELyB

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Рекомендуем посмотреть