Макрос excel столбец в строку в excel

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

«Столбцы в строки» с помощью VBA

Для тех, кто не сталкивался с такой «необходимостью», я приведу небольшой пример с двумя таблицами:

Столбцы в строки - примерЛевая таблица — исходная. В ней все данные хранятся в столбцах. Из такой таблицы крайне неудобно будет строить сводную: Excel каждый столбец будет рассматривать как отдельное поле, которое по отдельности надо будет перетаскивать при разработки структуры сводной таблицы. Это не будет большой проблемой, если таких столбцов несколько. А если 12, как в примере? Или 50, или еще больше? Вот в таком случае, максимально удобно будет использовать таблицу, у которой столбцы преобразованы в строки.

Правая таблица — искомая. Именно такой вариант таблицы максимально удобен для построения сводной. И целью моей статьи является показать, как можно преобразовать левую табличку в правую посредством языка VBA.

Стоит отметить, что столбцы в строки можно также преобразовать с помощью надстройки Power Query для Excel, но здесь об этом рассказано не будет. Итак, поехали.

«Столбцы в строки»: разработка формы

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

Выделять диапазоны (исходный и конечный) мы будем с помощью элемента управления RefEdit (если данный элемент управления отсутствует на панели инструментов, то его необходимо добавить: щелкните по рабочей форме, затем нажмите «Tools» — «Additional Controls» и поставьте галочку рядом с «RefEdit.Ctrl»). Вводить необходимое количество обрабатываемых столбцов мы будем через элемент TextBox (его переименуем в Clmn_Count для удобства). Также добавляем CommandButton, то есть кнопку, для запуска самого основного макроса. Получается что-то вроде этого:

Столбцы в строки: рабочая форма

По нажатию на кнопку «Выполнить преобразование» будет выполняться следующий код:

Private Sub CommandButton1_Click()
s1 = RefEdit1.Value 
s2 = RefEdit2.Value
If s1 = "" Then MsgBox "Диапазон не выделен": Exit Sub
If s2 = "" Then MsgBox "Начальный диапазон не выделен": Exit Sub
Set r1 = Range(s1) 'преобразовываем в диапазон
Set r2 = Range(s2) 'преобразовываем в диапазон
If (r2.Rows.Count > 1) Or (r2.Columns.Count > 1) Then MsgBox "Конечный диапазон должен состоять из одной ячейки": Exit Sub
Prepare
Collapse Clmn_Count.Value, r1, r2 'преобразовать столбцы в строки
Ended
End Sub

Переменным s1 и s2 присваиваем значения полей RefEdit1 и RefEdit2 соответственно. Затем эти переменные проверяются: если они пустые, то уведомляем пользователя и выходим из процедуры, а если с ними все в порядке — преобразовываем их в диапазоны r1 и r2 соответственно. Проверяем второй диапазон на количество столбцов и строк: если этот диапазон не является ячейкой (т.е. строк и столбцов больше 1) — тоже уведомляем пользователя и завершаем процедуру.

Если все проверки пройдены — запускаем поочередно три процедуры:

  1. Prepare — активация кода оптимизации
  2. Collapse Clmn_Count.Value, r1, r2 — запуск основной обработки, преобразующей столбцы в строки
  3. Ended — деактивация кода оптимизации

Пройдемся по каждому из них.

Prepare

Код оптимизации, взятый мной с Хабра. Отключает некоторые функции Excel, ускоряя выполнение макросов:

Public Sub Prepare()
    Application.ScreenUpdating = False 'отключение обновления экрана
    Application.Calculation = xlCalculationManual 'отключение автоматического пересчета формул
    Application.EnableEvents = False 'отключение обработки событий
    ActiveSheet.DisplayPageBreaks = False 'отключить отображение разрывов страниц
    Application.DisplayStatusBar = False 'отключить статусную строку в Excel
    Application.DisplayAlerts = False 'отключить отображение ошибок и предупреждений
End Sub
Collapse Clmn_Count.Value, r1, r2

Основной макрос, которые как раз выполняет нужную нам функцию: преобразовывает столбцы в строки. У него есть три аргумента: количество столбцов для преобразования (используется TextBox, который у нас называется Clmn_Count), и два диапазона (исходная табличка и конечная ячейка). Сам по себе макрос довольно сложный для восприятия, но я постараюсь вкратце объяснить его принцип работы на небольшом примере:

Столбцы в строки: таблица для примера

Private Sub Collapse(ByVal col_num As Integer, ByVal rng_source As Range, ByVal rng_new As Range)
lastrow = rng_source.Row + rng_source.Rows.Count - 1
NewRow = rng_new.Row
NewColumn = rng_new.Column
k = col_num
For q = 1 To (rng_source.Columns.Count - k) 'заполнение заголовков новой таблице по данным старой
    Cells(NewRow, NewColumn + q - 1) = Cells(rng_source.Row, rng_source.Column + q - 1)
Next q
lastrow_new = rng_new.Row + 1 'Сдвиг на 1 строку вниз от заголовка основного столбца
For i = rng_source.Row + 1 To lastrow 'перебираем все строки исходника
    Z = rng_source.Column + rng_source.Columns.Count - k 'z - первый столбец свертываемого значения
    For j = lastrow_new To lastrow_new + k - 1 'транспонируем столбцы в строки
        For q = 1 To (rng_source.Columns.Count - k)
            Cells(j, NewColumn + q - 1) = Cells(i, rng_source.Column + q - 1) 'Столбец с основными значениями
        Next q
        Cells(j, NewColumn + q - 1) = Cells(rng_source.Row, Z) 'Заголовки свертываемых столбцов в строки
        Cells(j, NewColumn + q) = Cells(i, Z)  'Значения свертываемых столбцов в строки
        Z = Z + 1
    Next j
    lastrow_new = lastrow_new + col_num
Next i
End Sub
  1. Сначала копируем заголовки, которые у нас статичны (в нашем примере это заголовок «Клиент» и «SKU»)
  2. Затем берем новую строку исходной таблицы и выполняем определенный алгоритм 3 раза (то есть столько раз, сколько у нас столбцов):
    • Копируем строку с наименованиями «Клиента» и «SKU»
    • Затем делаем сдвиг на Z столбцов вправо (изначально Z = 1 и наращивается, в нашем случае, до 3)
    • Копируем заголовок данного столбца (сначала это «Январь»), а затем соответствующее значение
    • Наращиваем Z (для сдвига на следующий месяц), и повторяем все сначала
  3. Затем спускаемся на новую строку исходной таблицы и повторяем пункт 2 снова, до тех пор, пока не переберем все строки исходной таблицы:

Столбцы в строки: примерНа гифке показан наглядный пример выполнения данного алгоритма. После того, как выполнение макроса завершилось и все столбцы в строки преобразованы — переходим к макросу Ended.

Ended

Включение функций Excel, которые мы отключили с помощью макроса Prepare

Public Sub Ended()
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    Application.DisplayStatusBar = True
    Application.DisplayAlerts = True
End Sub

Заключение

В общем-то, на этом работа завершена. Принцип работы макроса очень прост: вызываем форму, выделяем исходную таблицу с заголовками(!), вводим количество столбцов, которое у нас должно быть преобразовано (как пример: если есть столбцы январь-декабрь, то вводим 12), затем выбираем ячейку, в которую мы хотим вставить исходную таблицу и нажимаем «Выполнить преобразование». И все, столбцы в строки преобразованы.

Преобразовать столбцы в строки: скачать пример

По желанию, можно связать вызов формы с какой-либо кнопкой в документе. Или шагнуть дальше — сделать свою надстройку с возможностью вызова этой формы в совершенно любом файле Excel.

Превращение строк в столбцы и обратно

Постановка задачи

Хотим, упрощенно говоря, повернуть таблицу на бок, т.е. то, что располагалось в строке — пустить по столбцу и наоборот:

transpose1.gif

Способ 1. Специальная вставка

Выделяем и копируем исходную таблицу (правой кнопкой мыши — Копировать). Затем щелкаем правой по пустой ячейке, куда хотим поместить повернутую таблицу и выбираем из контекстного меню команду Специальная вставка (Paste Special). В открывшемся диалоговом окне ставим галочку Транспонировать (Transpose) и жмем ОК.

transpose2.gif

Минусы: не всегда корректно копируются ячейки с формулами, нет связи между таблицами (изменение данных в первой таблице не повлияет на вторую).

Плюсы: в транспонированной таблице сохраняется исходное форматирование ячеек.

Способ 2. Функция ТРАНСП

Выделяем нужное количество пустых ячеек (т.е. если, например, исходная таблица была из 3 строк и 5 столбцов, то выделить обязательно нужно диапазон из 5 строк и 3 столбцов) и вводим в первую ячейку функцию ТРАНСП (TRANSPOSE) из категории Ссылки и массивы (Lookup and Reference):

transpose3.gif

После ввода функции необходимо нажать не Enter, а Ctrl+Shift+Enter, чтобы ввести ее сразу во все выделенные ячейки как формулу массива. Если раньше не сталкивались с формулами массивов, то советую почитать тут — это весьма экзотический, но очень мощный инструмент в Excel.

Плюсы: между таблицами сохраняется связь, т.е. изменения в первой таблице тут же отражаются во второй.

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

Способ 3. Формируем адрес сами

Этот способ отчасти похож не предыдущий, но позволяет свободно редактировать значения во второй таблице и вносить в нее любые правки при необходимости. Для создания ссылок на строки и столбцы нам понадобятся четыре функции из категории Ссылки и массивы:

  • Функция АДРЕС(номер_строки; номер_столбца) — выдает адрес ячейки по номеру строки и столбца на листе, т.е. АДРЕС(2;3) выдаст, например, ссылку на ячейку C2.
  • Функция ДВССЫЛ(ссылка_в_виде_текста) — преобразует текстовую строку, например, «F3» в настоящую ссылку на ячейку F3.
  • Функции СТРОКА(ячейка) и СТОЛБЕЦ(ячейка) — выдают номер строки и столбца для заданной ячейки, например =СТРОКА(F1) выдаст 1, а =СТОЛБЕЦ(А3) выдаст 3.

Теперь соединяем эти функции, чтобы получить нужную нам ссылку, т.е. вводим в любую свободную ячейку вот такую формулу:

=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))

в английской версии Excel это будет =INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))

А затем копируем (протягиваем) формулу на соседние ячейки как обычно черным крестом. В итоге должно получиться примерно следующее:

transpose4.gif

Т.е. при копировании формулы вниз по столбцу, она выдает ссылку, которая уходит вправо по строке и наоборот. Чего и требовалось.

Плюсы: сохраняются связи между таблицами, можно легко вносить изменения во вторую таблицу.

Минусы: форматирование не сохраняется, но его можно легко воспроизвести Специальной вставкой (вставить только Формат с флажком Транспонировать

Skip to content

6 способов быстро транспонировать таблицу

В этой статье показано, как столбец можно превратить в строку в Excel с помощью функции ТРАНСП, специальной вставки, кода VBA или же специального инструмента. Иначе говоря, мы научимся транспонировать таблицу.

В этой статье вы найдете несколько способов поменять местами строки и столбцы (или столбцы и строки), как бы вы это ни называли, это одно и то же :) Эти решения работают во всех версиях Excel 2016, 2013, 2010, 2007 и ниже, представляют множество возможных сценариев и объясняют наиболее типичные ошибки. Вот о чём мы поговорим:

  • 1. Используем специальную функцию транспонирования
  • 2. Как транспонировать с помощью формул
  • 3. Специальная вставка.
  • 4. Макрос VBA для преобразования строки в столбец
  • 5. Сводная таблица для транспонирования.
  • 6. Преобразование столбцов в строки с помощью специального инструмента

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

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

Транспонирование – это математическая операция. Это преобразование матрицы, в результате чего столбцы становятся строками, а строки превращаются в столбцы. Говоря проще, нужно все значения в строке (горизонталь) перекинуть в столбец (вертикаль).

Способ 1. Использовать функцию ТРАНСП.

В случае, когда вам нужно быстро изменить ориентацию вашей таблицы, можно использовать функцию ТРАНСП (TRANSPOSE в англоязычной версии).

Назначение функции ТРАНСП в Excel – транспонировать строку в столбец, т. е. поменять ориентацию данных с горизонтальной на вертикальную или наоборот.

Функция ТРАНСП в Excel — синтаксис

Функция транспонировать принимает только один аргумент:

= ТРАНСП(массив)

Где массив – это диапазон для транспонирования. Данные преобразуются следующим образом: первая строка исходного диапазона становится первым столбцом нового, вторая строка становится вторым столбцом и так далее.

Синтаксис ТРАНСП не оставляет места для ошибок при создании формулы. Более сложная задача –  правильно записать её на рабочий лист. Если у вас нет большого опыта работы с формулами Excel в целом и формулами массивов в частности, внимательно следуйте приведенным ниже инструкциям.

1. Подсчитайте количество столбцов и строк в исходной таблице.

Эти числа понадобятся вам на следующем шаге.

В этом примере мы собираемся транспонировать небольшую таблицу Excel, которая показывает объем экспорта свежих фруктов по регионам:

2. Выберите такое же количество ячеек, но измените их ориентацию.

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

В нашем случае мы выбираем диапазон из 5 столбцов и 4 строк:

3. Введите формулу ТРАНСП.

Выделив этот пустой диапазон, используйте функцию транспонирования:

=ТРАНСП(A1:D5)

Вот подробные шаги:

Сначала вы вводите знак равенства, имя функции и открывающую скобку: = ТРАНСП(

Затем выберите исходный диапазон с помощью мыши или введите его вручную:

Наконец, введите закрывающую скобку, но не нажимайте клавишу Enter! На этом этапе ваша формула должна выглядеть примерно так:

функция транспонировать в excel

4. Запишите формулу.

Нажмите Ctrl + Shift + Enter, чтобы правильно закончить формулу массива. Зачем это? Потому что формула должна применяться ко всем данным. И это именно то, для чего предназначены формулы массива.

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

На скриншоте ниже показано, что наша исходная матрица значений была успешно транспонирована и 4 столбца были преобразованы в 4 строки. А столбцов теперь стало пять:

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

Преимущества функции ТРАНСП:

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

Слабые стороны функции ТРАНСП:

  • Исходное форматирование не сохраняется в преобразованной таблице, как вы видите на скриншоте выше.
  • Если в исходной таблице есть пустые клетки, вместо них ячейки новой таблицы будут содержать ноль. Чтобы исправить это, используйте ТРАНСП в комбинации с функцией ЕСЛИ, как описано в этом примере ниже: Как транспонировать без нулей.
  • Вы не можете редактировать какие-либо данные в преобразованной таблице, потому что она полностью завязана на исходные данные. Если вы попытаетесь изменить какое-либо значение, то получите ошибку «Вы не можете изменить часть массива».

Итак, какой бы хорошей и простой в использовании не была бы функция ТРАНСП, ей определенно не хватает гибкости. Поэтому она может быть не самым оптимальным вариантом во многих ситуациях.

Как транспонировать таблицу без замены нулей на пробелы.

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

То есть, если при транспонировании строки в столбец программа обнаруживает пустую ячейку, то вместо нее сразу же вставляется ноль. Это особенность Экселя: стоит с пустой ячейкой произвести какую-то математическую операцию, и там тут же появляется ноль. А транспонирование в Excel – это математическая операция с матрицей значений.

С одной стороны, это выглядит несущественно, поскольку не меняет математические результаты в итогах. Но для вас эти нули могут выглядеть не совсем эстетично, так как меняют внешний вид данных. Ну а если они появляются посреди текстовых значений – это совсем некрасиво.

Если вы хотите оставить в новой таблице по-прежнему пустые ячейки, а не нули, то вложите функцию ЕСЛИ в формулу ТРАНСП, чтобы предварительно проверить, является ли ячейка пустой. Если она пуста, функция ЕСЛИ вернет пустую строку («»), в противном случае предоставит значение для транспонирования:

=ТРАНСП(ЕСЛИ(A1:D5=»»;»»;A1:D5))

Введите формулу, как описано выше (не забудьте нажать Ctrl + Shift + Enter, чтобы правильно завершить формулу массива), и вы получите результат, подобный этому:

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

Советы по использованию ТРАНСП

Как вы только что видели, функция ТРАНСП имеет ряд особенностей, которые могут сбить с толку неопытных пользователей. Приведенные ниже советы помогут вам избежать некоторых типичных ошибок.

1. Как редактировать формулу?

Как функция массива, ТРАНСП не позволяет изменять часть возвращаемого массива. Чтобы отредактировать формулу транспонирования, выберите весь диапазон, к которому относится формула, внесите необходимые изменения и нажмите Ctrl + Shift + Enter, чтобы сохранить обновленную формулу.

2. Как удалить формулу?

Чтобы удалить формулу транспонирования с листа, выберите весь диапазон, на который имеется ссылка в формуле, и нажмите клавишу Del.

3. Как заменить формулу на значения?

Когда вы переворачиваете таблицу с помощью функции ТРАНСП, исходная и новая таблицы связываются. Это означает, что всякий раз, когда вы изменяете какое-либо значение в исходной таблице, соответствующее значение в новой изменяется автоматически.

Если вы хотите разорвать связь между ними, замените формулы вычисленными значениями. Для этого выберите все ячейки преобразованной таблицы, затем нажмите Ctrl + C, чтобы скопировать их в буфер обмена. Кликните правой кнопкой мыши и выберите в контекстном меню «Специальная вставка» > « Значения». Или используйте для вставки значений вместо формул комбинацию клавиш Ctrl+Alt+V.

Способ 2. Как транспонировать с помощью формул

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

Для создания ссылок на строки и столбцы нам понадобятся четыре функции из категории Ссылки и массивы:

  • Функция АДРЕС(номер_строки; номер_столбца) – выдает адрес ячейки по номеру строки и столбца на листе, т.е. АДРЕС(2;3) выдаст, например, ссылку на C2.
  • Функция ДВССЫЛ(ссылка_в_виде_текста) – преобразует текстовую строку, например, «F3» в настоящую ссылку на ячейку F3.
  • Функции СТРОКА() и СТОЛБЕЦ() — выдают номер строки и столбца для заданной ячейки, например =СТРОКА(F1) выдаст 1, а формула =СТОЛБЕЦ(А3) возвратит 3.

Теперь соединяем эти функции, чтобы получить нужную нам ссылку на исходную таблицу. Предположим, координаты её верхнего левого угла – A1.

Вводим в любую свободную ячейку (скажем, в A8) вот такую формулу:

=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))

в английской версии Excel это будет =INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))

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

транспонировать формулы в excel

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

Если ваши данные начинаются с некоторой строки, отличной от 1, и столбца, отличного от A, вам придется использовать немного более сложную формулу:

=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(B6) — СТОЛБЕЦ($B$6) + СТРОКА($B$6); СТРОКА(B6) — СТРОКА($B$6) + СТОЛБЕЦ($B$6)))

Где B6 — самая верхняя левая ячейка исходной таблицы. Также обратите внимание на использование абсолютных и относительных ссылок.

Однако транспонированные данные выглядят очень просто и тускло по сравнению с исходными. Всё форматирование потеряно.

Но не расстраивайтесь, эту проблему легко решить. Чтобы восстановить исходное форматирование, выполните следующие действия:

  • Скопируйте исходную таблицу.
  • Выделите получившуюся таблицу.
  • Щелкните её правой кнопкой мыши и выберите «Параметры вставки» > «Форматирование» .

Преимущества: эта формула обеспечивает более гибкий способ замены строк и столбцов в Excel. Это позволяет вносить любые изменения в итоговую таблицу, поскольку вы используете обычную формулу, а не формулу массива.

Недостатки: вижу только один — теряется форматирование данных. Хотя вы можете быстро восстановить его, как описано выше.

Способ 3. Специальная вставка

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

как транспонировать строки в столбцы в Excel

Для этого выполните следующие действия:

  1. Выберите исходные данные. Чтобы быстро выделить всю таблицу, то есть все ячейки с данными в ней, нажмите Ctrl + Home, а потом Ctrl + Shift + End. Вы также можете транспонировать отдельную строку или столбец.
  2. Скопируйте выделенное, щелкнув правой кнопкой мыши и выбрав пункт Копировать в контекстном меню, или нажав Ctrl + C.
  3. Выберите первую позицию целевого диапазона.
    Обязательно выберите клетку, расположенную вне вашей исходной таблицы, чтобы области копирования и области вставки не перекрывались. Например, если у вас сейчас 4 столбца и 10 строк, преобразованная таблица будет иметь 10 столбцов и 4 строки.
  4. Щелкните правой кнопкой мыши целевую ячейку и выберите «Специальная вставка» в контекстном меню, затем выберите «Транспонировать».

транспонированная вставка в excel

Как вы только что видели, функция «Специальная вставка» позволяет выполнять преобразование из строки в столбец (или из столбца в строку) буквально за несколько секунд. Этот метод также копирует форматирование ваших исходных данных, чем добавляет еще один плюс в свою пользу.

Однако у этого подхода есть два недостатка, которые не позволяют называть его идеальным решением чтобы перевернуть данные в Excel:

  • Он не слишком подходит для вращения полнофункциональных таблиц Excel. Если вы скопируете всю таблицу и затем откроете диалоговое окно «Специальная вставка», то обнаружите, что пункт «Транспонировать» неактивен. В этом случае вам нужно либо скопировать ее без заголовков столбцов, либо сначала преобразовать ее в обычный диапазон.
  • Операция Специальная вставка > Транспонировать не связывает новую таблицу с исходными данными. Поэтому она хорошо подходит только для одноразовых преобразований. Всякий раз, когда исходные данные меняются, вам нужно будет повторить процесс и повернуть таблицу заново. Никто не захочет тратить свое время на преобразование одних и тех же строк и столбцов снова и снова, верно?

Как транспонировать таблицу и связать ее с исходными данными

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

  1. Скопируйте строки, которые нужно преобразовать в столбцы (или столбцы, которые нужно превратить в строки).
  2. Выберите пустую ячейку на том же или другом листе.
  3. Откройте диалоговое окно «Специальная вставка», как описано в предыдущем примере, и нажмите «Вставить связь» в нижнем левом углу.

  1. Результат будет примерно таким:

  1. Выберите новую таблицу и откройте диалоговое окно Excel «Найти и заменить» (или нажмите Ctrl + H, чтобы сразу перейти на вкладку Заменить).
  2. Замените все знаки «=» на «###» или любые другие символы, которых нет нигде в ваших реальных данных. Таким нехитрым образом мы преобразуем наши формулы-ссылки в текст.

Эта операция превратит ваши данные во что-то немного пугающее, как вы видите на скриншоте ниже. Но не паникуйте – еще 2 шага, и вы достигнете желаемого результата.

  1. Скопируйте диапазон со значениями «###» в буфер обмена, а затем используйте Специальная вставка > Транспонировать, чтобы преобразовать столбцы в строки.

  1. Наконец, откройте диалоговое окно «Найти и заменить» еще раз, чтобы отменить изменение, т.е. обратно заменить все «###» на «=», и восстановить ссылки на исходные данные.

Это длинноватое, но элегантное решение, не правда ли? Единственным недостатком этого подхода является то, что исходное форматирование теряется в процессе, и вам нужно будет восстановить его вручную (в дальнейшем в этом руководстве я покажу вам быстрый способ сделать это).

Способ 4. Транспонировать матрицу данных в Excel с помощью макроса VBA

Чтобы автоматизировать преобразование строк в столбцы в Excel, вы можете использовать следующий макрос:

  Sub TransposeColumnsRows()
     Dim SourceRange As Range
     Dim DestRange As Range
      Set SourceRange = Application.InputBox(Prompt:="Выделите диапазон для транспонирования", Title:="Транспонирование строк в столбцы", Type:=8)
     Set DestRange = Application.InputBox(Prompt:="Укажите верхнюю левую ячейку новой таблицы", Title:="Транспонирование строк в столбцы", Type:=8)
      SourceRange.Copy
     DestRange.Select
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
     Application.CutCopyMode = False
  End Sub 

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

Примечание. Транспонирование с помощью VBA имеет ограничение в 65536 элементов. Если ваш массив превышает этот предел, дополнительные данные будут автоматически отброшены.

Как использовать макрос для преобразования строки в столбец

Вставив макрос в книгу, выполните следующие шаги, чтобы повернуть таблицу:

  1. Откройте целевой рабочий лист, нажмите Alt + F8, выберите макрос TransposeColumnsRows и нажмите «Выполнить».

  1. Выберите диапазон, который вы хотите преобразовать, и нажмите OK :

  1. Выберите верхнюю левую позицию целевого диапазона и нажмите ОК:

Матрица значений транспонирована. Наслаждайтесь результатом :)

как транспонировать строку в столбец excel

Способ 5. Сводная таблица.

Еще один способ как можно транспонировать таблицу в Excel — с помощью сводной таблицы. К сожалению, этот способ работает только в одном направлении — из столбцов переворачивает данные в строки. Но его преимущество, по сравнению с предыдущими, – это возможность фильтровать данные и использовать всю мощь сводных таблиц. 

Сначала необходимо создать сводную таблицу (здесь есть подробная инструкция). Выделяем исходные данные:

Создаем её на новом листе.

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

Перетаскиваем поля в макете таблицы, и получаем результат – таблица повёрнута набок.

Преобразуйте столбцы в строки с помощью инструмента транспонирования

Если вам нужно выполнять преобразования строки в столбец достаточно часто, то возможно, вы действительно ищете более быстрый и простой способ. К счастью, у меня есть такой способ в моем Excel, как и у других пользователей надстройки Ultimate Suite  :)

Позвольте мне продемонстрировать вам, как перенести строки в столбцы в Excel буквально за пару кликов при помощи инструмента транспонирования таблицы:

  1. Выделите любую отдельную ячейку в таблице, перейдите на вкладку AblebitsTools > Transform и нажмите кнопку Transpose.

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

Если вы хотите Создать ссылки на исходные данные, чтобы повернутая таблица обновлялась автоматически при каждом изменении исходной таблицы, выберите соответствующий вариант:

Готово! Таблица транспонирована:

Если вам интересно попробовать этот и более 60 других профессиональных инструментов для Excel, я приглашаю вас загрузить пробную версию  Ultimate Suite. 

Итак, вы можете выбрать для себя любой из этих шести методов транспонирования таблицы в Excel.

Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге!

Как сделать диаграмму Ганта Думаю, каждый пользователь Excel знает, что такое диаграмма и как ее создать. Однако один вид графиков остается достаточно сложным для многих — это диаграмма Ганта.  В этом кратком руководстве я постараюсь показать…
Как сделать автозаполнение в Excel В этой статье рассматривается функция автозаполнения Excel. Вы узнаете, как заполнять ряды чисел, дат и других данных, создавать и использовать настраиваемые списки в Excel. Эта статья также позволяет вам убедиться, что вы…
Быстрое удаление пустых столбцов в Excel В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых…
Как быстро заполнить пустые ячейки в Excel? В этой статье вы узнаете, как выбрать сразу все пустые ячейки в электронной таблице Excel и заполнить их значением, находящимся выше или ниже, нулями или же любым другим шаблоном. Заполнять…

В этой статье я представляю код VBA для переноса столбцов в строки и вставки новых строк для заполнения данных, как показано на скриншоте ниже. Если вас интересует эта операция, перейдите по ссылке ниже для получения дополнительных сведений.
док транспонировать вставить строки 1

Транспонировать и вставлять строки с помощью VBA


стрелка синий правый пузырь Транспонировать и вставлять строки с помощью VBA

Нет прямого способа транспонировать диапазон и вставлять строки для заполнения тех же данных, но здесь я могу ввести код VBA для быстрого решения этой задачи.

1. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте под кодом VBA в окно модуля. Смотрите скриншот:

VBA: транспонировать и вставлять строки.

 Sub TransposeInsertRows()
'UpdatebyExtendoffice20161125
    Dim xRg As Range
    Dim i As Long, j As Long, k As Long
    Dim x As Long, y As Long
    Set xRg = Application.InputBox _
    (Prompt:="Range Selection...", _
    Title:="Kutools For Excel", Type:=8)
    Application.ScreenUpdating = False
    x = xRg(1, 1).Column + 2
    y = xRg(1, xRg.Columns.Count).Column
    For i = xRg(xRg.Rows.Count, 1).Row To xRg(1, 1).Row Step -1
        If Cells(i, x) <> "" And Cells(i, x + 1) <> "" Then
            k = Cells(i, x - 2).End(xlToRight).Column
            If k > y Then k = y
            For j = k To x + 1 Step -1
                Cells(i + 1, 1).EntireRow.Insert
                With Cells(i + 1, x - 2)
                    .Value = .Offset(-1, 0)
                    .Offset(0, 1) = .Offset(-1, 1)
                    .Offset(0, 2) = Cells(i, j)
                End With
                Cells(i, j).ClearContents
            Next j
        End If
    Next i
    Application.ScreenUpdating = True
End Sub

док транспонировать вставить строки 2

3. Нажмите F5 нажмите клавишу, чтобы запустить код, а затем выберите диапазон данных, который вы хотите транспонировать, и вставьте строки в всплывающее диалоговое окно. Смотрите скриншот:
док транспонировать вставить строки 3

4. Нажмите OK. И выбранный диапазон был преобразован, как показано на скриншоте ниже.
док транспонировать вставить строки 4

Внимание: перед запуском кода лучше сохранить копию исходных данных.

Наконечник.Если вы хотите быстро преобразовать перекрестную таблицу в таблицу списка или наоборот, попробуйте использовать Kutools for ExcelАвтора Перенести размеры таблицы как показано на следующем снимке экрана. Полная функция без ограничений в 30 дней, пожалуйста, скачайте и получите бесплатную пробную версию сейчас.

док транспонировать крестик в список


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (8)


Оценок пока нет. Оцените первым!

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

Обращение к ячейке.
Допустим, у нас есть два открытых файла: «Книга1» и «Книга2», причем, файл «Книга1» активен и в нем находится исполняемый код VBA.

В общем случае при обращении к ячейке неактивной рабочей книги «Книга2» из кода файла «Книга1» прописывается полный путь:

Visual Basic
1
2
3
Workbooks("Книга2.xlsm").Sheets("Лист2").Range("C5")
Workbooks("Книга2.xlsm").Sheets("Лист2").Cells(5, 3)
Workbooks("Книга2.xlsm").Sheets("Лист2").Cells(5, "C")

Удобнее обращаться к ячейке через свойство рабочего листа Cells(номер строки, номер столбца), так как вместо номеров строк и столбцов можно использовать переменные. Обратите внимание, что при обращении к любой рабочей книге, она должна быть открыта, иначе произойдет ошибка. Закрытую книгу перед обращением к ней необходимо открыть.

Теперь предположим, что у нас в активной книге «Книга1» активны «Лист1» и ячейка на нем «A1». Тогда обращение к ячейке «A1» можно записать следующим образом:

Visual Basic
1
2
3
4
ActiveCell
Range("A1")
Cells(1, 1)
Cells(1, "A")

Точно также можно обращаться и к другим ячейкам активного рабочего листа, кроме обращения ActiveCell, так как активной может быть только одна ячейка, в нашем примере — это ячейка «A1».
https://vremya-ne-zhdet.ru/vba… chistka/#1

Транспонирование в Excel – преобразуем строки в столбцы и наоборот

​Смотрите также​Так как он​ СТОЛБЕЦ($N$1)?​ мне не подходит​ — там надо​(Транспонировать).​ скрипт, который будет​A​ Вы можете пропустить.​Вот и всё! В​ данные в транспонированной​

​Обязательно нажмите​ частности с функциями​ххх​ создаёт копию исходных​(наконец, самый быстрый способ)​ кнопкой мыши и​Транспонирование данных в Excel​ ограничен числом столбцов​vikttur​ лист будет меняться​ поставить галочку «транспонировать».​Если в появившемся меню​ транспонировать строки в​– это первый​Функция​ Вашей новой таблице​

  • ​ таблице, при этом​Ctrl+Shift+Enter​ массива, то, пожалуйста,​
  • ​«. На самом деле​ данных, и, если​ Нажмите​ выберите​
  • ​ – это задача,​256​

Преобразуем строки в столбцы в Excel при помощи Специальной вставки

​:​ по месяцам при​Александра белкина​ Вы не нашли​ столбцы, при условии,​ столбец. Как не​INDIRECT​ все столбцы преобразованы​ сохраняя связь с​, поскольку это формула​ внимательно следите за​ Вы можете заменить​ они изменятся, Вам​Ctrl+Alt+V​Copy​

Транспонирование данных в Excel

  1. ​ знакомая многим пользователям.​, то ни транспонированием,​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС($B$6:$B$16;СЧЁТ($B$6:$B$16)-СТОЛБЕЦ(A1)+1)​ переходе в форму!​: Чтобы всю таблицу​ иконку команды​ что Вы достаточно​ трудно догадаться, функция​​(ДВССЫЛ) служит для​​ в строки. Однако,​​ исходной таблицей.​​ массива. Если для​
  2. ​ тем, чтобы выполнять​ их на любые​
    • ​ придётся повторять процесс​, выберите опцию​(Копировать) в контекстном​​ Очень часто после​​ ни формулами запихнуть​Если очень надо,​
    • ​а вот второй​​ преобразовать, т. е.​​Transpose​
    • ​ хорошо владеете VBA.​​ROW​​ создания непрямой ссылки​​ транспонированные ячейки выглядят​​В этом примере мы​​ ввода формулы просто​​ следующие шаги в​​ другие символы, которых​
  3. ​ и транспонировать таблицу​Transpose​ меню.​ создания сложной таблицы,​

​»…строк более 500…»​​ про​ ответ сейчас посмотрю!​ столбцы сделать строками,​(Транспонировать), то можете​ Если нет, то​(СТРОКА) работает точно​ на ячейку. Например,​ очень плоско и​ будем использовать небольшую​ нажать​ точности как написано.​ нет в рассматриваемом​ снова. Никто не​(Транспонировать) и кликните​

  1. ​нажмите​ становится очевидным, что​​в 256 столбцов​​СТОЛБЕЦ()​​excelhelprus​​ а строки столбцами,​ использовать команду​​ можете найти множество​​ так же, только​ если Вы хотите​
    • ​ скучно по сравнению​​ таблицу, чтобы Вы​​Enter​​В этом примере мы​​ диапазоне.​ захочет тратить своё​ОК​​Ctrl+C​​ эффективнее было бы​ не получится…​​почитайте в справке.​​: Это 1 и​
    • ​ надо выделить ее,​Paste Special​ готовых макросов в​ для строк.​ поместить значение ячейки​​ с исходными данными.​​ могли сосредоточить свое​​, то она работать​​ будем преобразовывать таблицу,​
    • ​Это превратит Вашу таблицу​ драгоценное время на​​.​​.​​ развернуть её для​​javvva​​Rustem​​ тот же способ)​Транспонирование данных в Excel

​ скопировать в буфер​​(Специальная вставка).​ интернете. Но если​А теперь позвольте напомнить​B1​Но не расстраивайтесь, это​ внимание на процессе​ не будет.​ в которой перечислены​ в нечто слегка​ то, чтобы преобразовывать​Замечание:​

​нажмите кнопку​ более удобного анализа​​: а по мне​​: Про N1=14​ просто код -​ обмена (проще правой​В этом случае откроется​ Вы работаете с​ всю формулу, которую​в ячейку​ вовсе не проблема.​ транспонирования, а не​Готово! Наши данные транспонированы,​ штаты США с​ пугающее (смотри рисунок​ одни и те​Если Вы транспонируете​Co​

​ или построения диаграммы​ так для того​Serge_007​ это отображение функции​ кнопкой мыши на​ диалоговое окно​

  • ​ большими таблицами, помните,​ мы использовали для​A8​ Вот как можно​ на данных в​ 7 столбцов превратились​ данными о населении:​ ниже), но не​ же строки и​ ячейки, содержащие формулы,​py​ по имеющимся данным.​ чтобы сделать диаграмму​: Извиняюсь, не тот​ траспонирования в макросе.​​ выделенной таблице щелкнуть​​Paste Special​​ что метод​​ преобразования строк в​
  • ​, то записываете в​ легко восстановить исходное​ таблице. Мы будем​ в 6 столбцов,​Во-первых, необходимо определить точное​ тревожьтесь, осталось всего​ столбцы по нескольку​ убедитесь, что во​(Копировать) на вкладке​В этой статье Вы​ не обязательно переделывать​ файл выложил​ Почему не подходит​ и выбрать Копировать).​(Специальная вставка). Отметьте​Transpose​

Как транспонировать таблицу, ссылающуюся на исходные данные

​ столбцы на листе​ ячейку​ форматирование:​ использовать немного замысловатую​ что и требовалось​​ количество строк и​​ 2 действия, и​​ раз. Согласны?​​ всех этих ячейках​Home​ найдёте несколько способов​ всю таблицу. хотя​Правильный здесь​ — совсем не​ Таблица выделится пунктирной​ необходимые параметры, а​в VBA ограничен​ Excel:​

  1. ​A8​Скопируйте исходную таблицу.​ комбинацию функций​ получить.​ столбцов в таблице.​
  2. ​ Вы получите желаемый​Давайте посмотрим, как можно​ использованы абсолютные ссылки​
  3. ​(Главная) в разделе​​ преобразовать строки в​​ я могу ошибаться​balda​ понятно​ мигающей границей. Потом​​ главное – не​​ 65536 элементами. Если​=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))​следующую формулу:​Транспонирование данных в Excel​Выделите транспонированную таблицу.​

    Транспонирование данных в Excel

  4. ​INDIRECT​Главное преимущество функции​ В нашем примере​​ результат.​​ преобразовать строки в​ (со знаком $).​Clipboard​​ столбцы (или столбцы​​ (не так часто​: Друзья! Всем огромное​​excelhelprus​​ выделяете ячейку, в​
  5. ​ забудьте поставить галочку​ Ваш массив выйдет​​=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))​​=INDIRECT(«B1»)​​Кликните по выделенной области​​(ДВССЫЛ) и​TRANSPOSE​ это 7 столбцов​Скопируйте таблицу с символами​ столбцы в Excel​ Это необходимо, поскольку​Транспонирование данных в Excel​(Буфер обмена).​ в строки) в​ приходилось делать диаграммы).​ спасибо за быстрые​:​ которую хотите вставить​ напротив опции​ за рамки этого​

    Транспонирование данных в Excel

  6. ​Как видите, в функции​=ДВССЫЛ(«B1»)​​ правой кнопкой мыши​​ADDRESS​​(ТРАНСП): преобразованная таблица​​ и 6 строк,​​ «​​ при помощи уже​ формулы также будут​Выделите первую ячейку диапазона,​ Excel. Эти решения​
  7. ​Фиалочка​​ ответы!! Получилось!!!​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub В_Столбец_2()​ преобразованную таблицу, правой​Transpose​​ ограничения, то все​​ADDRESS​​Но реальная сила функции​​ и в разделе​(АДРЕС).​ сохраняет связь с​Транспонирование данных в Excel

​ включая заголовки. Запомним​ххх​ знакомой нам техники​ транспонированы, а ссылки​ в который Вы​ работают во всех​: Спасибо большое каждому,​Фиалочка​Sheets(«Лист1»).Range(«A1:AE5»).Copy​ кнопкой щелкаете по​(Транспонировать).​ лишние данные будут​(АДРЕС) мы задаём​

Транспонируем данные в Excel при помощи формул

​INDIRECT​Paste Options​Предположим, у Вас есть​ источником данных, т.е.​ эти цифры и​» и выполните команду​

Преобразуем в Excel строки в столбцы при помощи функции TRANSPOSE (ТРАНСП)

​Копировать​ на ячейки автоматически​​ собираетесь скопировать транспонированные​​ версиях Excel (2013,​ кто ответил. Ваши​: Здравствуйте.​Sheets(«Лист2»).Range(«A1»).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,​ ней, выбираете колманду​Подсказка:​ молча потеряны.​ сначала столбец, а​(ДВССЫЛ) в том,​(Параметры вставки) выберите​ данные в 4​ какие бы изменения​ приступим к преобразованию​

​Paste Special​>​ обновлены.​ данные.​ 2010, 2007 и​

Транспонирование данных в Excel

​ советы и уж​Подскажите, пожалуйста, мне,​ SkipBlanks:= _​ Специальная вставка, в​Если Вы копируете​Урок подготовлен для Вас​ затем строку, и​ что она может​Formatting​ столбцах (​

  1. ​ в исходных данных​ строк в столбцы.​(Специальная вставка) >​Вставить​Как Вы только что​
  2. ​Замечание:​ более ранних), охватывают​​ тем более таблица​​ компьютерному чайнику, элементарную​False, Transpose:=True​ появившемся диалоговом окне​ ячейки с относительными​ командой сайта office-guru.ru​ в этом кроется​ превратить любую текстовую​(Форматирование).​A​ Вы ни вносили,​Посчитайте ячейки, которые Вы​Transpose​
  3. ​, так, чтобы транспонированные​​ увидели, опция​​Важно выбрать ячейку,​ множество возможных сценариев,​
  4. ​ оччень помогли.​​ (для вас, знатоков)​​End Sub​​ установите флажок Транспонировать,​ ссылками без ячеек,​Источник: https://www.ablebits.com/office-addins-blog/2014/03/06/transpose-excel-rows-columns/​ весь фокус! Помните,​ строку в ссылку,​Подводя итог, метод с​

    ​–​
    ​ транспонированная таблица также​

​ хотите транспонировать. В​​(Транспонировать), чтобы преобразовать​ данные ссылались на​Transpose​​ которая находится за​​ объясняют наиболее типичные​

Транспонирование данных в Excel

  1. ​P. S. Честно,​​ вещь: как сделать​​excelhelprus​

​ затем ОК или​​ на которые идут​​Перевел: Антон Андронов​​ что функция​ в том числе​ функцией​D​​ будет изменяться.​​ нашем случае это​ столбцы в строки​

​ исходные данные. Главное​(Транспонировать) в Excel​ пределами диапазона исходных​ ошибки и показывают​ очень боялась, что​

Транспонирование данных в Excel

Преимущества функции TRANSPOSE (ТРАНСП)

​ так, чтобы данные,​​: это конкретно для​​ Enter на клавиатуре.​ ссылки, то ссылки​Автор: Антон Андронов​ADDRESS​ строку, которую Вы​INDIRECT​) и в 5​Форматирование начальной таблицы не​

Недостатки функции TRANSPOSE (ТРАНСП)

  • ​ 7 столбцов и​ (или строки в​ преимущество такого подхода​ позволяет преобразовать строки​ данных, чтобы скопированная​
  • ​ хорошие примеры использования​ засмеют за такие​ записанные в 4​ вашего файла -​Удачи!​
  • ​ станут ошибочными. Чтобы​Многие поклонники Excel рано​(АДРЕС) понимает первое​​ создаёте при помощи​​(ДВССЫЛ) кажется более​ строках (​ сохранится в преобразованной​ 6 строк.​ столбцы).​ в том, что​​ в столбцы (или​ область и область​​ в Excel формул​ глупые вопросы, а,​

​ столбцах, стали данным,​ вставляет ваш календарик​Ckaym​ избежать этого, копируйте​​ или поздно сталкиваются​​ число как номер​ других функций и​ сложным решением задачи​1​ таблице, как это​

Преобразовываем строку в столбец или столбец в строку при помощи функции INDIRECT (ДВССЫЛ)

​Выберите пустой диапазон ячеек.​Снова откройте диалоговое окно​ при изменении данных​ столбцы в строки)​​ вставки не пересеклись.​​ для транспонирования.​ оказывается, народ здесь​ записанными в 4​ на лист 2​: Всем доброго времени​ и вставляйте только​ с этой задачей.​

​ строки, а второе​ значений других ячеек.​ по преобразованию строк​–​ видно на рисунке​ Так как функция​Find and Replace​ в исходной таблице,​ буквально за несколько​ Например, если исходные​​Преобразовываем строки в столбцы​​ вот какой терпимый​​ строки (что необходимо​​ начиная с ячейки​

​ суток.​ значения, когда выполняете​ Данные на листе​​ число как номер​​ Именно это мы​​ в столбцы, чем​​5​ выше.​​TRANSPOSE​​(Найти и заменить),​​ транспонированная таблица обновится​​ секунд. Уверен, что​

Транспонирование данных в Excel

  1. ​ данные состоят из​ методом Копировать >​ и помогающий.​ мне для построения​ А1​​Как преобразовать несколько​​ преобразование строк в​​ могут быть выстроены​​ столбца. Другими словами,​

    ​ и собираемся сейчас​
    ​ с функцией​

    ​):​Если какие-то ячейки начальной​(ТРАНСП) меняет вертикальное​​ чтобы заменить все​​ и отразит эти​ этот способ очень​​ 4 столбцов и​​ Вставить​RuMaSs​

    ​ диаграммы). Данных более​
    ​Ckaym​

    ​ строк с Листа1​​ столбцы или наоборот.​​ вертикально или горизонтально,​ функция​ сделать. Если Вы​TRANSPOSE​Введите формулу, показанную ниже,​

  2. ​ таблицы были пусты,​ на горизонтальное измерение​ символы «​ изменения.​ полезен, когда требуется​ 10 строк, то​Транспонируем таблицу при помощи​:​Транспонирование данных в Excel

​ 500 в каждом​: Да все спасибо​ в столбец на​ Для этого отметьте​ но временами Вы​ADDRESS​ поймёте это, то​(ТРАНСП).​

Транспонирование данных в Excel

​ в верхнюю левую​ то в транспонированных​ диапазона, значит нужно​ххх​Скопируйте строки, которые Вы​

  • ​ транспонировать таблицу один​
  • ​ транспонированная таблица будет​
  • ​ копирования / вставки​Serge 007​ столбце, так что​​ получилось​​ Лист2.​​ опцию​​ будете замечать, что​Транспонирование данных в Excel

​(АДРЕС) берёт номер​ всё остальное поймёте​​Преимущества:​​ ячейку конечного диапазона​ ячейках там будут​ выбрать такое количество​» на «​ хотите преобразовать в​​ раз. Пользуясь этим​​ состоять из 10​

​ ссылок на исходные​​? спасибо. помогла​ вручную переписывать долго.​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub В_Столбец()​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub В_Столбец()​Values​ та или иная​ столбца, возвращённый функцией​ с лёгкостью​Вы можете спокойно​ (допустим, это будет​ нули.​

​ строк и столбцов,​​=​ столбцы (или столбцы,​ методом, Вы сохраняете​ столбцов и 4​ данные​ информация.​P. S. Пользуюсь​m_ = Format(Date,​

​For h =​(Значения) в разделе​​ таблица выглядела бы​​COLUMN​Думаю, Вы помните, что​ редактировать любую ячейку​ ячейка​Вы не сможете редактировать​ сколько столбцов и​«, т.е. восстановить ссылки​​ которые хотите преобразовать​​ исходные данные, и​ строк.​Транспонируем данные в Excel​Андрей​

Функции INDIRECT (ДВССЫЛ) и ADDRESS (АДРЕС) – синтаксис и логика

​ экселем в Office​​ «M»)​​ 1 To 31​Paste​ лучше, если столбцы​(СТОЛБЕЦ), и превращает​ в формуле мы​​ (ячейки) в транспонированной​​A7​​ ячейки в преобразованной​​ строк соответственно имеет​ на исходные ячейки.​​ в строки).​​ это ещё один​

​Вставьте скопированные данные при​
​ при помощи формул​

Транспонирование данных в Excel

​: Как вариант:​​ как 2003, так​​Sheets(«Табель»).Range(«A1:AE5»).Copy​ ‘​(Вставить) диалогового окна​ и строки поменять​ его в номер​ использовали ещё 3​ таблице, при этом​), и нажмите​ таблице, поскольку функция​ Ваша исходная таблица.​ Готово!​Выберите пустую ячейку на​ аргумент в его​ помощи команды​Предположим, Вы создали таблицу​:)

​перегоняешь столбец в​ и 2007 (вдруг​Sheets(m_ + 2).Range(«A1»).PasteSpecial​Cells(h, 33) =​​Paste Special​​ местами.​​ строки, затем берёт​​ функции –​​ она будет оставаться​​Enter​

​TRANSPOSE​​ В нашем примере​​Быстрое, спокойное и элегантное​ этом же или​ пользу.​Paste Special​ на листе Excel,​ строку (где сия​ в каком-либо пакете​​ Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=​​ Cells(1, h)​​(Специальная вставка).​​Представляем Вашему вниманию приём,​

​ номер строки и​​ADDRESS​​ связанной с таблицей-источником​:​(ТРАНСП) чрезвычайно зависима​ мы выбираем 6​​ решение, не так​​ другом листе.​​Однако, вышеописанный метод имеет​​(Специальная вставка) >​​ похожую на ту,​​ кнопка — не​ нужной функции нет).​ _​​Cells(h, 34) =​​Ваши данные будут точно​ при помощи которого​ превращает его в​

​(АДРЕС),​ и будет автоматически​=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))​ от источника данных.​ столбцов и 7​ ли? Единственный недостаток​

​Откройте диалоговое окно​
​ два существенных недостатка,​

​Transpose​​ что показана в​​ помню, но точно​Заранее спасибо всем,​False, Transpose:=True​ Cells(2, h)​ и легко транспонированы​ Вы можете изменить​​ номер столбца, то​​COLUMN​ обновляться каждый раз,​=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))​ Если Вы сделаете​ строк.​ этого подхода состоит​​Paste Special​​ которые не позволяют​(Транспонировать). Вы можете​​ верхней части рисунка,​​ она была. сам​ кто поможет советом.​End Sub​Cells(h, 35) =​ и выстроены в​ компоновку данных в​ есть меняет местами​(СТОЛБЕЦ) и​

​ когда Вы будете​Если данные начинаются не​ попытку изменить какую-либо​Нажмите​ в том, что​

  • ​(Специальная вставка), как​​ считать его идеальным​​ открыть диалоговое окно​​ расположенного ниже. Названия​​ пользовался) , потом​Vlanib​Вопрос закрыт​
  • ​ Cells(3, h)​​ новом порядке. В​​ Excel в соответствии​ строки и столбцы.​
  • ​ROW​​ вносить изменения в​​ в строке с​ ячейку, то получите​F2​ в процессе выполнения​

​ было показано в​

Транспонирование данных в Excel

Транспонируем данные при помощи макроса VBA

​ решением для транспонирования​Paste Special​ стран распределены по​ сохраняешь как текст​: Выделяете диапазон с​balda​Cells(h, 36) =​ обратном направлении этот​ с Вашими потребностями.​Теперь, когда Вы знаете,​(СТРОКА).​ исходные данные.​ номером​​ сообщение с предупреждением:​​, чтобы перейти в​ форматирование исходной таблицы​ предыдущем примере, и​ данных в Excel.​(Специальная вставка) тремя​ столбцам, но список​ с разделителем запятая​

​ данными, Ctrl+C, выделить​: Друзья! Помогите прообразовать​
​ Cells(4, h)​
​ приём работает так​

​ Давайте вместе проделаем​

office-guru.ru

Преобразуем строки в столбцы и обратно в Microsoft Excel

​ что делает каждая​Функция​Недостатки:​1​You cannot change part​ режим редактирования.​ будет потеряно, и​ нажмите​Данный инструмент не доступен​ способами:​ стран может оказаться​ :)​ ячейку куда записать​

​ столбец в строку​Cells(h, 37) =​ же хорошо.​ следующие шаги и​ функция, давайте сведём​ADDRESS​На самом деле,​и не в​ of an array​Запишите функцию​ Вам придётся восстанавливать​

Преобразуем строки в столбцы в Excel

Весь секрет в специальной вставке

  1. ​Paste Link​ при копировании /​На вкладке​ очень длинным, поэтому​перегнать столбец в​ измененные данные, правой​ (только при помощи​​ Cells(5, h)​​Надеюсь, этот способ будет​
  2. ​ расположим данные в​ воедино логику всей​(АДРЕС) используется для​ я вижу только​ столбце​(Нельзя изменять часть​TRANSP​ его вручную (далее​​(Вставить связь) в​​ вставке полнофункциональной таблицы​Преобразуем строки в столбцы в Excel
  3. ​Home​ нам будет гораздо​ строку и наоборот:​​ клавишей меню -​​ функций) в обратном​Next h​​ полезен. Хорошего Вам​​ таблице в виде​Преобразуем строки в столбцы в Excel
  4. ​ формулы:​ того, чтобы получить​​ один – форматирование​​A​ массива).​OSE​ в этом уроке​ нижнем левом углу​​ Excel в отличие​​(Главная) в разделе​Преобразуем строки в столбцы в Excel

​ удобнее преобразовать столбцы​​ Копировать столбец, контекстное​ специальная вставка -​ порядке!​End Sub​ дня!​ двух горизонтальных строк.​функции​ адрес ячейки из​ исходных данных не​, то потребуется немного​И в завершение, какой​(ТРАНСП) и укажите​ я покажу быстрый​​ диалогового окна.​​ от простого диапазона.​​Clipboard​​ в строки, чтобы​​ меню — «Специальная​​ опция транспонировать внизу.​

Наслаждайтесь результатом

​Как на прикреплённом​excelhelprus​Урок подготовлен для Вас​Первым делом, выделите таблицу​COLUMN​ номеров строки и​ сохраняется. Впрочем, Вы​

Преобразуем строки в столбцы в Excel

​ более сложная формула:​ бы хорошей и​ в скобках диапазон​

​ способ сделать это).​Результат будет примерно таким:​
​ В этом случае​
​(Буфер обмена), нажмите​

​ таблица уместилась на​

office-guru.ru

Как в экселе данные столбца перенести в строку

​ вставка», ставим галку​​Serge 007​ файле!​: В Excel есть​ командой сайта office-guru.ru​ с данными, которые​

​(СТОЛБЕЦ) и​​ столбца, заданных Вами.​ можете легко восстановить​=INDIRECT(ADDRESS(COLUMN(A1)-COLUMN($A$1)+ROW($A$1),ROW(A1)-ROW($A$1)+COLUMN($A$1)))​ простой ни была​ данных, который нужно​Если Вы не ищите​Выделите новые данные и​ Вам придётся скопировать​

​ маленькую чёрную стрелку​​ экране.​ «Транспонировать», ок. Это​: Здравствуйте.​Спасибо!!! Очень надо!!!​ опция при вставке.​Источник: https://www.ablebits.com/office-addins-blog/2012/04/10/convert-rows-columns-excel/​ Вам нужно повернуть.​ROW​ Запомните: сначала строка,​ его, как это​=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1)-СТОЛБЕЦ($A$1)+СТРОКА($A$1);СТРОКА(A1)-СТРОКА($A$1)+СТОЛБЕЦ($A$1)))​ функция​ транспонировать. В нашем​ лёгких путей, то​ откройте диалоговое окно​ таблицу без заголовков,​ под кнопкой​Выделите строки и столбцы,​ для 2007.​Фиалочка​EXcel 2007​ Называется транспонировать. Если​
​Перевел: Антон Андронов​

Как преобразовать строку в столбец на другом листе (Макросы/Sub)

​ Кликните правой кнопкой​​(СТРОКА) возвращают номера​ потом столбец. Например,​
​ показано выше.​Где​TRANSPOSE​ случае это будет​
​ можете использовать формулы​
​ Excel –​ либо преобразовать её​Paste​
​ которые требуется поменять​Вариант №2. Сохраняешь​
​, можно воспользоваться способом​Serge_007​
​ нужно в макросе​Автор: Антон Андронов​
​ мыши и в​ столбца и строки​
​АДРЕС(8;1)​Теперь Вы понимаете, как​
​A1​
​(ТРАНСП), ей не​

​ выглядеть так:​​ для преобразования столбцов​Find and Replace​ в диапазон, т.е.​(Вставить) и выберите​ местами. Если Вы​ как текст, а​ предложенным​: См. вложение​ — используйте ее​

​Ирина​​ появившемся контекстном меню​​ соответственно;​
​возвратит​ работает функция​
​– это левая​

​ хватает гибкости, и​​=TRANSPOSE($A$1:$G$6)​ в строки и​(Найти и заменить).​ кликнуть правой кнопкой​ команду​
​ хотите развернуть всю​ потом по текстовому​

​Vlanib​​balda​ с макрорекордером. Будет​: выделить, скопировать, встать​ нажмите команду​функция​$A$8​INDIRECT​ верхняя ячейка таблицы-источника.​

​ поэтому она становится​​=ТРАНСП($A$1:$G$6)​​ наоборот.​
​ Вы также можете​
​ мыши по любой​Transpose​
​ таблицу целиком, т.е.​
​ файлу автозаменой перенос​

​, или, если нет​​: большое спасибо за​ явно быстрее и​ на строку, правой​Copy​ADDRESS​.​

​(ДВССЫЛ), и, возможно,​​ Также обратите внимание​ не лучшим решением​
​Замечание:​
​Как можно понять из​ нажать сочетание​
​ ячейке таблицы и​
​(Транспонировать).​ все ячейки с​ строки и ";"​
​ желания каждый раз​
​ быстрый ответ! Но​

​ удобнее чем в​

excelworld.ru

преобразовать столбец в строку при помощи функций в об. пор.

​ кнопкой мыши -​​(Копировать).​(АДРЕС) меняет местами​Функция​ захотите более подробно​ на использование абсолютных​
​ во многих ситуациях.​Всегда используйте абсолютные​
​ её названия, функция​
​Ctrl+H​

​ в контекстном меню​​Кликните правой кнопкой мыши​

​ данными на листе,​​ меняешь на «,»​ вручную копировать исходный​ мне нужно в​ вашем коде)​

​ специальная вставка -​​Далее выберите позицию, где​

​ строку и столбец;​​COLUMN​ разобраться, что на​ и относительных ссылок.​Этот метод очень похож​ ссылки для работы​

​TRANSPOSE​​, чтобы сразу попасть​​ выбрать​
​ по ячейке, в​ нажмите​​ :)​​ диапазон и жать​

​ обратном порядке​​excelhelprus​

​ транспортировать​​ должна располагаться новая​функция​sad
​(СТОЛБЕЦ) возвращает номер​

​ самом деле делает​​Скопируйте формулу на весь​ на предыдущий. Его​ с функцией​

excelworld.ru

Данные из столбцов в строки.

​(ТРАНСП) специально разработана​​ на вкладку​
​Table​ которую нужно вставить​Ctrl+Home​ЗЫ. Пункты меню​ кнопки, то можно​Rustem​:​Татьяна​ таблица. Кликните правой​INDIRECT​ столбца из заданной​ эта формула и​ диапазон, в который​ главное преимущество перед​
​TRANSPOSE​ для транспонирования данных​Replace​(Таблица) >​ данные, и в​, а затем​
​ — вольный перевод,​ воспользоваться формулами (см.​

​: Так?​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sheets(«Лист1»).Range(«E2:E4»).Copy​: данные столбца выделить,​ кнопкой мыши по​(ДВССЫЛ) выводит перевернутые​ ссылки на ячейку.​ почему мы использовали​ Вы собираетесь поместить​

​ функцией​​(ТРАНСП).​
​ в Excel. Если​​(Заменить).​Convert to Range​​ контекстном меню выберите​​Ctrl+Shift+End​ так как офис​ вложение).​balda​Sheets(«Лист2»).Range(«H8»).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,​ скопировать, поставить курсор​ левой верхней ячейке​
​ данные в другую​ Например,​ комбинацию с функцией​ транспонированные данные, протянув​
​TRANSPOSE​Нажмите​​ у Вас нет​​Замените все символы равно​(Преобразовать в диапазон).​​Paste Special​​.​ аглицкий, а ответ​

​А вот тут​​: Вроде так. Но​ SkipBlanks:= _​ к началу строки,​ этой области и​ ячейку на листе​СТОЛБЕЦ(A3)​ADDRESS​ за маркер автозаполнения​

​(ТРАНСП) состоит в​​Ctrl+Shift+Enter​ большого опыта работы​ «​Более серьёзное ограничение этого​(Специальная вставка) >​
​Скопируйте выделенные ячейки. Для​ с аглицкими буквами​ у Вас возникнет​ я не понял​False, Transpose:=True​ правой кнопкой мышки​ в появившемся меню​

​ Excel.​​возвратит значение​​(АДРЕС). Если технические​​ в правом нижнем​ том, что он​

CyberForum.ru

Как в экселе текстовые данные из нескольких ячеек одного столбца преобразовать в одну строку, с разделителем — запятой?

​.​​ с формулами в​
​=​ метода состоит в​Transpose​ этого на выбор:​ у меня не​ сложность с 2003​ (извиняюсь за невежество)​Ckaym​ вызвать контекстное меню​
​ выберите команду​Совсем не страшно, правда?​1​ детали Вас не​ углу выделенной ячейки​ оставляет возможность изменять​Замечание:​
​ Excel, и в​» на «​ том, что он​(Транспонировать).​кликните по ним правой​ принимался :(​ Excel.​
​ про чём здесь​: Спасибо такой вариант​ — специальная вставка​Transpose​Не составит труда написать​, поскольку столбец​ интересуют, следующий раздел​

​ (или диапазона ячеек).​

Транспонировать из столбца в строки

Goodzel

Дата: Воскресенье, 16.09.2018, 21:14 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 25


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Добрый день, уважаемые знатоки!
У меня такая задачка: приходит файл в одном столбце в одной куче данные, которые должны быть таблицей из 7 столбцов (не форматируется на отправляющей стороне никак)
таких «строк» может быть очень много, до 20000 шт, поэтому делать таблицу через «специальную вставку» нерационально
Можно ли написать такой макрос, который будет каждые 7 ячеек транспонировать в таблицу? в примере, наверное, более наглядно
Благодарю всех откликнувшихся!!!

 

Ответить

Karataev

Дата: Воскресенье, 16.09.2018, 21:23 |
Сообщение № 2

Группа: Проверенные

Ранг: Старожил

Сообщений: 1330


Репутация:

528

±

Замечаний:
0% ±


Excel

Макрос сделан для листа, на котором данные начинаются со строки 1 (а не со строки 4, как у Вас в файле).


Киви-кошелек: 9166309108

 

Ответить

Goodzel

Дата: Понедельник, 17.09.2018, 11:12 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 25


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Karataev, Спасибо огромное!! Все работает идеально hands hands hands

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Макрос excel создать документ
  • Макрос excel создает таблицу
  • Макрос excel создает документ
  • Макрос excel собирать файлы в один
  • Макрос excel собирает все файлы