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

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

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

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

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

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 и заполнить их значением, находящимся выше или ниже, нулями или же любым другим шаблоном. Заполнять…

Студворк — интернет-сервис помощи студентам

Приветствую, друзья! Требуется Ваша помощь. Долго думал какой написать заголовок, но думаю из него всё равно ничего не понятно.

Сейчас постараюсь объяснить задачу. Есть некоторое количество строк вида:

А В
Значение 1 1,2,3,…N
Значение 2 1,2,3,…N

Значение N 1,2,3,…N

Нужно привести к виду:

А В
Значение 1 1
Значение 1 2
Значение 1 3
Значение 1 …
Значение 1 N
Значение 2 1
Значение 2 2
Значение 2 3
Значение 2 …
Значение 2 N

Значение N 1
Значение N 2
Значение N 3
Значение N …
Значение N N

Значений в столбце «А» может быть сколько угодно, значений в строке «В» тоже.

Заранее благодарен за помощь!

Очень часто у пользователей 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.

Преобразовать строку со значениями в столбец

l-lisa

Дата: Понедельник, 30.05.2016, 16:56 |
Сообщение № 1

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

Ранг: Обитатель

Сообщений: 312


Репутация:

1

±

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


Excel 2010

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

К сообщению приложен файл:

_—2-.xlsx
(9.8 Kb)

 

Ответить

Kuzmich

Дата: Понедельник, 30.05.2016, 17:24 |
Сообщение № 2

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

Ранг: Ветеран

Сообщений: 707


Репутация:

154

±

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


Excel 2003

А где функция =fNew(A1)?

 

Ответить

l-lisa

Дата: Понедельник, 30.05.2016, 17:50 |
Сообщение № 3

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

Ранг: Обитатель

Сообщений: 312


Репутация:

1

±

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


Excel 2010

Добрый день, помогите пожалуйста заменить формулой запятые на перенос значения в другую ячейку, если такое возможно
[moder]Зачем дублируете темы? Темы объединяю, а Вам замечание[/moder]

Сообщение отредактировал PelenaПонедельник, 30.05.2016, 18:11

 

Ответить

pabchek

Дата: Понедельник, 30.05.2016, 18:00 |
Сообщение № 4

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

Ранг: Ветеран

Сообщений: 931


Репутация:

218

±

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


Excel 2007

Здравствуйте! Так надо?

Код

=ЕСЛИОШИБКА(ПСТР(A$2;ПОИСК(«ёё»;ПОДСТАВИТЬ(A$2;»,»;»ёё»;СТРОКА(A1)))-8;8);ПРАВБ(A$2;8))

[offtop]Но чувствую, что будут дополнительные условия :)[/offtop]


«Учиться, учиться и еще раз учиться!»
WM: R399923528092

Сообщение отредактировал pabchekПонедельник, 30.05.2016, 18:01

 

Ответить

jakim

Дата: Понедельник, 30.05.2016, 18:03 |
Сообщение № 5

Группа: Друзья

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

Сообщений: 1149


Репутация:

305

±

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


Excel 2010

А «Текст по столбцвм» и транспонирование через спецальную вставку не подойдёт.

 

Ответить

МВТ

Дата: Понедельник, 30.05.2016, 21:28 |
Сообщение № 6

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

Ранг: Обитатель

Сообщений: 476


Репутация:

137

±

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


Excel 2007

Можно так, только поменяйте (если нужно) адрес ячеек откуда берутся данные и куда они вставляются
[vba]

Код

Sub tt()
    Dim arr, arr1, i As Long, j As Long
    Const From = «G1», StartRow = 4, StartColumn = 6
    arr = Split(Replace(Range(From), » «, «»), «;»)
    Application.ScreenUpdating = False
    For i = 0 To UBound(arr)
        arr1 = Split(arr(i), «=»)
        For j = 0 To 1
            Cells(StartRow + i, StartColumn + j) = CDbl(arr1(j))
        Next
    Next
    Application.ScreenUpdating = True
End Sub

[/vba]

 

Ответить

l-lisa

Дата: Вторник, 31.05.2016, 09:06 |
Сообщение № 7

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

Ранг: Обитатель

Сообщений: 312


Репутация:

1

±

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


Excel 2010

Спасибо, очень хороший макрос! Только как можно его применить на большое количество ячеек?

Сообщение отредактировал l-lisaВторник, 31.05.2016, 09:40

 

Ответить

МВТ

Дата: Вторник, 31.05.2016, 18:19 |
Сообщение № 8

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

Ранг: Обитатель

Сообщений: 476


Репутация:

137

±

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


Excel 2007

l-lisa, много ячеек — это как?

 

Ответить

l-lisa

Дата: Вторник, 31.05.2016, 19:51 |
Сообщение № 9

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

Ранг: Обитатель

Сообщений: 312


Репутация:

1

±

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


Excel 2010

ну то есть столбец G может быть заполнен на n-строк и в каждой строке может находиться >1 равенств как в файле

К сообщению приложен файл:

-2-.xlsx
(9.9 Kb)

Сообщение отредактировал l-lisaВторник, 31.05.2016, 19:52

 

Ответить

МВТ

Дата: Вторник, 31.05.2016, 20:33 |
Сообщение № 10

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

Ранг: Обитатель

Сообщений: 476


Репутация:

137

±

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


Excel 2007

Забираете в массив значения строк из диапазона [g1].CurrentRegion, а дальше перебираете по очереди и разбиваете, как в предыдущем макросе

 

Ответить

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

​Смотрите также​: Здравствуйте.​Kuzmich​ 1 To 31​ чтобы получить нужную​ из 5 строк​ данные.​Transpose​ интернете. Но если​ столбца из заданной​На самом деле,​

​Введите формулу, показанную ниже,​Главное преимущество функции​ с формулами в​ диалогового окна.​ раз. Пользуясь этим​Выделите первую ячейку диапазона,​Транспонирование данных в Excel​Подскажите, пожалуйста, мне,​: А где функция​ ‘​ нам ссылку, т.е.​ и 3 столбцов)​Повернув данные, можно удалить​(Транспонировать) и нажмите​ Вы работаете с​ ссылки на ячейку.​

  • ​ я вижу только​ в верхнюю левую​TRANSPOSE​
  • ​ Excel, и в​Результат будет примерно таким:​ методом, Вы сохраняете​ в который Вы​
  • ​ – это задача,​ компьютерному чайнику, элементарную​

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

​ =fNew(A1)?​Cells(h, 33) =​ вводим в любую​ и вводим в​ исходные.​ОК​ большими таблицами, помните,​ Например,​ один – форматирование​ ячейку конечного диапазона​(ТРАНСП): преобразованная таблица​ частности с функциями​Выделите новые данные и​ исходные данные, и​ собираетесь скопировать транспонированные​

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

  1. ​ знакомая многим пользователям.​ (для вас, знатоков)​l-lisa​ Cells(1, h)​ свободную ячейку вот​ первую ячейку функцию​Если данные содержат формулы,​.​​ что метод​​СТОЛБЕЦ(A3)​​ исходных данных не​​ (допустим, это будет​
  2. ​ сохраняет связь с​ массива, то, пожалуйста,​
    • ​ откройте диалоговое окно​ это ещё один​ данные.​​ Очень часто после​​ вещь: как сделать​: Добрый день, помогите​
    • ​Cells(h, 34) =​​ такую формулу:​​ТРАНСП (TRANSPOSE)​
    • ​ Excel автоматически обновляет​​Теперь Ваши столбцы преобразовались​​Transpose​​возвратит значение​​ сохраняется. Впрочем, Вы​​ ячейка​​ источником данных, т.е.​​ внимательно следите за​
  3. ​ Excel –​ аргумент в его​Замечание:​ создания сложной таблицы,​

​ так, чтобы данные,​​ пожалуйста заменить формулой​ Cells(2, h)​=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))​из категории​ их в соответствии​ в строки!​в VBA ограничен​1​ можете легко восстановить​A7​ какие бы изменения​ тем, чтобы выполнять​Find and Replace​ пользу.​

  1. ​Важно выбрать ячейку,​ становится очевидным, что​​ записанные в 4​​ запятые на перенос​​Cells(h, 35) =​​в английской версии Excel​Ссылки и массивы​​ с новым расположением.​​Точно таким же образом​ 65536 элементами. Если​
    • ​, поскольку столбец​​ его, как это​​), и нажмите​​ в исходных данных​​ следующие шаги в​(Найти и заменить).​Однако, вышеописанный метод имеет​​ которая находится за​​ эффективнее было бы​ столбцах, стали данным,​​ значения в другую​​ Cells(3, h)​
    • ​ это будет =INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))​(Lookup and Reference)​ Проверьте, используются ли​ Вы можете преобразовать​ Ваш массив выйдет​​A​​ показано выше.​​Enter​​ Вы ни вносили,​
    • ​ точности как написано.​ Вы также можете​​ два существенных недостатка,​​ пределами диапазона исходных​​ развернуть её для​​ записанными в 4​​ ячейку, если такое​​Cells(h, 36) =​Транспонирование данных в Excel

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

​ данных, чтобы скопированная​ более удобного анализа​​ строки (что необходимо​​ возможно​ Cells(4, h)​ формулу на соседние​После ввода функции необходимо​ абсолютные ссылки. Если​ Вот небольшой пример:​ ограничения, то все​ столбец. Как не​ работает функция​=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))​ будет изменяться.​ будем преобразовывать таблицу,​Ctrl+H​ считать его идеальным​ область и область​

​ или построения диаграммы​ мне для построения​Зачем дублируете темы?​Cells(h, 37) =​ ячейки как обычно​ нажать не Enter,​

  • ​ нет, перед поворотом​После копирования и специальной​ лишние данные будут​ трудно догадаться, функция​INDIRECT​=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))​Форматирование начальной таблицы не​ в которой перечислены​, чтобы сразу попасть​ решением для транспонирования​ вставки не пересеклись.​ по имеющимся данным.​ диаграммы). Данных более​ Темы объединяю, а​ Cells(5, h)​​ черным крестом. В​​ а​​ данных можно сделать​​ вставки с включенным​
  • ​ молча потеряны.​ROW​(ДВССЫЛ), и, возможно,​Если данные начинаются не​ сохранится в преобразованной​ штаты США с​ на вкладку​ данных в Excel.​ Например, если исходные​В этой статье Вы​ 500 в каждом​ Вам замечание​Next h​ итоге должно получиться​Ctrl+Shift+Enter​ абсолютные ссылки относительными.​

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

​ параметром​Урок подготовлен для Вас​(СТРОКА) работает точно​ захотите более подробно​ в строке с​​ таблице, как это​​ данными о населении:​​Replace​​Данный инструмент не доступен​ данные состоят из​ найдёте несколько способов​ столбце, так что​pabchek​End Sub​ примерно следующее:​, чтобы ввести ее​Если данные хранятся в​Transpose​

  1. ​ командой сайта office-guru.ru​ так же, только​ разобраться, что на​ номером​ видно на рисунке​
  2. ​Во-первых, необходимо определить точное​(Заменить).​ при копировании /​
  3. ​ 4 столбцов и​​ преобразовать строки в​​ вручную переписывать долго.​: Здравствуйте! Так надо?​excelhelprus​Т.е. при копировании формулы​​ сразу во все​​ таблице Excel, функция​(Транспонировать) строки преобразовались​Источник: https://www.ablebits.com/office-addins-blog/2014/03/06/transpose-excel-rows-columns/​Транспонирование данных в Excel​ для строк.​

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

  4. ​ самом деле делает​1​ выше.​​ количество строк и​​Замените все символы равно​ вставке полнофункциональной таблицы​ 10 строк, то​​ столбцы (или столбцы​​P. S. Пользуюсь​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ПСТР(A$2;ПОИСК(«ёё»;ПОДСТАВИТЬ(A$2;»,»;»ёё»;СТРОКА(A1)))-8;8);ПРАВБ(A$2;8))​​: В Excel есть​​ вниз по столбцу,​
  5. ​ выделенные ячейки как​Транспонировать​​ в столбцы.​​Перевел: Антон Андронов​​А теперь позвольте напомнить​​ эта формула и​и не в​Если какие-то ячейки начальной​ столбцов в таблице.​ «​ Excel в отличие​Транспонирование данных в Excel​ транспонированная таблица будет​ в строки) в​ экселем в Office​Но чувствую, что​ опция при вставке.​ она выдает ссылку,​формулу массива​будет недоступна. В​

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

  6. ​Это отличный способ расположить​Автор: Антон Андронов​​ всю формулу, которую​​ почему мы использовали​​ столбце​​ таблицы были пусты,​​ В нашем примере​​=​ от простого диапазона.​ состоять из 10​ Excel. Эти решения​
  7. ​ как 2003, так​​ будут дополнительные условия​​ Называется транспонировать. Если​ которая уходит вправо​. Если раньше не​​ этом случае вы​​ информацию на листе​​Иногда мы аккуратно и​​ мы использовали для​ комбинацию с функцией​A​Транспонирование данных в Excel

​ то в транспонированных​ это 7 столбцов​» на «​ В этом случае​ столбцов и 4​ работают во всех​ и 2007 (вдруг​ :)​ нужно в макросе​ по строке и​ сталкивались с формулами​ можете сначала преобразовать​ Excel так, как​

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

​ старательно вводим данные​ преобразования строк в​ADDRESS​, то потребуется немного​ ячейках там будут​ и 6 строк,​

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

​ххх​ Вам придётся скопировать​​ строк.​​ версиях Excel (2013,​ в каком-либо пакете​jakim​ — используйте ее​ наоборот. Чего и​ массивов, то советую​ таблицу в диапазон​ Вам нужно.​ в столбцах Excel​ столбцы на листе​(АДРЕС). Если технические​ более сложная формула:​ нули.​

​ включая заголовки. Запомним​«. На самом деле​ таблицу без заголовков,​Вставьте скопированные данные при​ 2010, 2007 и​

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

​ нужной функции нет).​: А «Текст по​ с макрорекордером. Будет​ требовалось.​почитать тут​ с помощью команды​Урок подготовлен для Вас​ и только к​ Excel:​ детали Вас не​

  1. ​=INDIRECT(ADDRESS(COLUMN(A1)-COLUMN($A$1)+ROW($A$1),ROW(A1)-ROW($A$1)+COLUMN($A$1)))​Вы не сможете редактировать​ эти цифры и​ Вы можете заменить​ либо преобразовать её​
  2. ​ помощи команды​ более ранних), охватывают​​Заранее спасибо всем,​​ столбцвм» и транспонирование​ явно быстрее и​Плюсы​- это весьма​Преобразовать в диапазон​ командой сайта office-guru.ru​ концу понимаем, что​=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))​ интересуют, следующий раздел​=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1)-СТОЛБЕЦ($A$1)+СТРОКА($A$1);СТРОКА(A1)-СТРОКА($A$1)+СТОЛБЕЦ($A$1)))​ ячейки в преобразованной​ приступим к преобразованию​
  3. ​ их на любые​​ в диапазон, т.е.​​Paste Special​ множество возможных сценариев,​
  4. ​ кто поможет советом.​​ через спецальную вставку​​ удобнее чем в​​: сохраняются связи между​ экзотический, но очень​на вкладке​Источник: http://www.howtogeek.com/howto/12366/convert-a-row-to-a-column-in-excel-the-easy-way/​ гораздо удобнее расположить​=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))​

    ​ Вы можете пропустить.​
    ​Где​

​ таблице, поскольку функция​​ строк в столбцы.​ другие символы, которых​ кликнуть правой кнопкой​​(Специальная вставка) >​​ объясняют наиболее типичные​

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

  1. ​Vlanib​​ не подойдёт.​​ вашем коде)​

​ таблицами, можно легко​​ мощный инструмент в​​Таблица​​Перевел: Антон Андронов​ их горизонтально, т.е.​Как видите, в функции​Функция​​A1​​TRANSPOSE​Посчитайте ячейки, которые Вы​

​ нет в рассматриваемом​ мыши по любой​Transpose​ ошибки и показывают​: Выделяете диапазон с​

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

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

​МВТ​​excelhelprus​​ вносить изменения во​ Excel.​или воспользоваться функцией​Автор: Антон Андронов​ не в столбцах,​ADDRESS​INDIRECT​– это левая​

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

  • ​(ТРАНСП) чрезвычайно зависима​ хотите транспонировать. В​ диапазоне.​ ячейке таблицы и​(Транспонировать). Вы можете​
  • ​ хорошие примеры использования​ данными, Ctrl+C, выделить​: Можно так, только​:​ вторую таблицу.​
  • ​Плюсы​ ТРАНСП, чтобы повернуть​При наличии листа с​​ а в строках.​​(АДРЕС) мы задаём​(ДВССЫЛ) служит для​ верхняя ячейка таблицы-источника.​ от источника данных.​ нашем случае это​Это превратит Вашу таблицу​​ в контекстном меню​ открыть диалоговое окно​​ в Excel формул​ ячейку куда записать​

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

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

​ Если Вы сделаете​ 7 столбцов и​ в нечто слегка​ выбрать​​Paste Special​​ для транспонирования.​ измененные данные, правой​ адрес ячеек откуда​Sheets(«Лист2»).Range(«H8»).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,​: форматирование не сохраняется,​ связь, т.е. изменения​Если вам требуется часто​

​ которые нужно повернуть,​ стоило потрудиться, чтобы​ затем строку, и​ на ячейку. Например,​ на использование абсолютных​ попытку изменить какую-либо​ 6 строк.​ пугающее (смотри рисунок​Table​(Специальная вставка) тремя​​Преобразовываем строки в столбцы​​ клавишей меню -​​ берутся данные и​​ SkipBlanks:= _​

​ но его можно​ в первой таблице​ поворачивать данные для​​ чтобы упорядочить строки,​​ понять, что с​​ в этом кроется​​ если Вы хотите​ и относительных ссылок.​​ ячейку, то получите​​Выберите пустой диапазон ячеек.​​ ниже), но не​​(Таблица) >​

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

  1. ​ способами:​ методом Копировать >​ специальная вставка -​ куда они вставляются​False, Transpose:=True​​ легко воспроизвести​​ тут же отражаются​​ просмотра под разными​​ можно использовать функцию​

    ​ самого начала надо​
    ​ весь фокус! Помните,​

    ​ поместить значение ячейки​Скопируйте формулу на весь​ сообщение с предупреждением:​​ Так как функция​​ тревожьтесь, осталось всего​Convert to Range​​На вкладке​​ Вставить​ опция транспонировать внизу.​

    ​200?'200px':''+(this.scrollHeight+5)+'px');">Sub tt()​
    ​Ckaym​

    ​Специальной вставкой​​ во второй.​​ углами, стоит создать​Транспонирование​ было делать всё​ что функция​B1​

  2. ​ диапазон, в который​You cannot change part​TRANSPOSE​ 2 действия, и​(Преобразовать в диапазон).​Home​Транспонируем таблицу при помощи​Serge 007​Транспонирование данных в Excel

​Dim arr, arr1,​: Спасибо такой вариант​(вставить только​Минусы​ сводную таблицу. С​. Она позволяет повернуть​ наоборот! Не спешите​ADDRESS​

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

​в ячейку​ Вы собираетесь поместить​ of an array​(ТРАНСП) меняет вертикальное​ Вы получите желаемый​

  • ​Более серьёзное ограничение этого​
  • ​(Главная) в разделе​
  • ​ копирования / вставки​: Здравствуйте.​ i As Long,​​ мне не подходит​​Формат​​: не сохраняется форматирование,​​ ее помощью вы​Транспонирование данных в Excel

​ данные из столбцов​ удалять проделанную работу​​(АДРЕС) понимает первое​​A8​ транспонированные данные, протянув​(Нельзя изменять часть​ на горизонтальное измерение​ результат.​​ метода состоит в​​Clipboard​

​ ссылок на исходные​​Фиалочка​ j As Long​ лист будет меняться​с флажком​ пустые ячейки из​ сможете быстро свести​ в строки и​ и начинать всё​ число как номер​, то записываете в​ за маркер автозаполнения​

​ массива).​​ диапазона, значит нужно​Скопируйте таблицу с символами​ том, что он​(Буфер обмена), нажмите​ данные​, можно воспользоваться способом​Const From =​ по месяцам при​

​Транспонировать​ первой таблицы отображаются​​ данные, перетащив поля​​ наоборот.​ заново. В Excel​ строки, а второе​ ячейку​ в правом нижнем​И в завершение, какой​ выбрать такое количество​​ «​​ создаёт копию исходных​ маленькую чёрную стрелку​Транспонируем данные в Excel​ предложенным​

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

​ «G1», StartRow =​​ переходе в форму!​​Ирина​ в виде нулей​ из области строк​Например, если данные выглядят​ есть простой способ​​ число как номер​​A8​​ углу выделенной ячейки​​ бы хорошей и​ строк и столбцов,​​ххх​​ данных, и, если​

​ под кнопкой​
​ при помощи формул​

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

​Vlanib​​ 4, StartColumn =​​а вот второй​: выделить, скопировать, встать​ во второй, нельзя​ в область столбцов​ так, как показано​ транспонировать всю таблицу​ столбца. Другими словами,​следующую формулу:​ (или диапазона ячеек).​ простой ни была​ сколько столбцов и​» и выполните команду​ они изменятся, Вам​Paste​Предположим, Вы создали таблицу​:)

​, или, если нет​ 6​ ответ сейчас посмотрю!​ на строку, правой​​ редактировать отдельные ячейки​​ (и наоборот) в​​ ниже, где продажи​​ целиком и сохранить​​ функция​​=INDIRECT(«B1»)​

​Вот и всё! В​​ функция​​ строк соответственно имеет​Paste Special​ придётся повторять процесс​(Вставить) и выберите​ на листе Excel,​ желания каждый раз​arr = Split(Replace(Range(From),​​excelhelprus​​ кнопкой мыши -​​ во второй таблице,​​ списке полей сводной​

​ по регионам указаны​​ структуру.​​ADDRESS​=ДВССЫЛ(«B1»)​ Вашей новой таблице​TRANSPOSE​​ Ваша исходная таблица.​​(Специальная вставка) >​​ и транспонировать таблицу​​ команду​​ похожую на ту,​​ вручную копировать исходный​ » «, «»),​: Это 1 и​​ специальная вставка -​​ поскольку формулу массива​ таблицы.​ в верхней части​

​В этой статье мы​(АДРЕС) берёт номер​Но реальная сила функции​ все столбцы преобразованы​(ТРАНСП), ей не​ В нашем примере​

​Transpose​
​ снова. Никто не​

​Transpose​​ что показана в​​ диапазон и жать​ «;»)​ тот же способ)​ транспортировать​ можно менять только​Хотим, упрощенно говоря, повернуть​​ листа, а продажи​​ приводим примеры и​ столбца, возвращённый функцией​INDIRECT​ в строки. Однако,​ хватает гибкости, и​ мы выбираем 6​​(Транспонировать), чтобы преобразовать​​ захочет тратить своё​(Транспонировать).​​ верхней части рисунка,​​ кнопки, то можно​Application.ScreenUpdating = False​ просто код -​Татьяна​ целиком.​ таблицу на бок,​ по кварталам —​ снимки экрана из​

​COLUMN​(ДВССЫЛ) в том,​ транспонированные ячейки выглядят​ поэтому она становится​ столбцов и 7​

  • ​ столбцы в строки​​ драгоценное время на​​Кликните правой кнопкой мыши​​ расположенного ниже. Названия​​ воспользоваться формулами (см.​For i =​ это отображение функции​
  • ​: данные столбца выделить,​​Этот способ отчасти похож​​ т.е. то, что​ в левой части​
  • ​ версии Excel 2010​​(СТОЛБЕЦ), и превращает​​ что она может​ очень плоско и​ не лучшим решением​ строк.​

​ (или строки в​

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

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

​ то, чтобы преобразовывать​ по ячейке, в​ стран распределены по​ вложение).​ 0 To UBound(arr)​ траспонирования в макросе.​ скопировать, поставить курсор​ не предыдущий, но​ располагалось в строке​ листа.​ х64. В других​ его в номер​ превратить любую текстовую​​ скучно по сравнению​​ во многих ситуациях.​Нажмите​ столбцы).​ одни и те​ которую нужно вставить​ столбцам, но список​А вот тут​

​arr1 = Split(arr(i),​ Почему не подходит​
​ к началу строки,​
​ позволяет свободно редактировать​

​ — пустить по​

office-guru.ru

Как преобразовать столбец в строку в Excel – простой способ

​Вы можете повернуть столбцы​ версиях, начиная с​ строки, затем берёт​ строку в ссылку,​ с исходными данными.​Этот метод очень похож​F2​Снова откройте диалоговое окно​ же строки и​ данные, и в​ стран может оказаться​ у Вас возникнет​ «=»)​ — совсем не​ правой кнопкой мышки​ значения во второй​ столбцу и наоборот:​ и строки, чтобы​ Excel 2003, этот​ номер строки и​ в том числе​Но не расстраивайтесь, это​

​ на предыдущий. Его​, чтобы перейти в​Find and Replace​ столбцы по нескольку​ контекстном меню выберите​ очень длинным, поэтому​ сложность с 2003​For j =​ понятно​ вызвать контекстное меню​ таблице и вносить​Выделяем и копируем исходную​

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

​ отобразить кварталы в​ приём работает аналогично,​ превращает его в​

Преобразовать столбец в строку в Excel

​ строку, которую Вы​ вовсе не проблема.​ главное преимущество перед​ режим редактирования.​(Найти и заменить),​ раз. Согласны?​Paste Special​ нам будет гораздо​ Excel.​ 0 To 1​excelhelprus​​ — специальная вставка​​ в нее любые​ таблицу (правой кнопкой​​ верхней части листа,​​ но могут быть​

Преобразовать столбец в строку в Excel

​ номер столбца, то​ создаёте при помощи​ Вот как можно​ функцией​Запишите функцию​ чтобы заменить все​​Давайте посмотрим, как можно​​(Специальная вставка) >​

Преобразовать столбец в строку в Excel

​ удобнее преобразовать столбцы​​Так как он​​Cells(StartRow + i,​:​​ — там надо​​ правки при необходимости.​​ мыши -​​ а регионы —​

Преобразовать столбец в строку в Excel

​ отличия в интерфейсе,​ есть меняет местами​

Преобразовать столбец в строку в Excel

​ других функций и​ легко восстановить исходное​TRANSPOSE​TRANSP​

Преобразовать столбец в строку в Excel

​ символы «​ преобразовать строки в​Transpose​​ в строки, чтобы​​ ограничен числом столбцов​ StartColumn + j)​

Преобразовать столбец в строку в Excel

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub В_Столбец_2()​ поставить галочку «транспонировать».​ Для создания ссылок​Копировать​

​ сбоку.​ структуре меню и​
​ строки и столбцы.​
​ значений других ячеек.​

​ форматирование:​

office-guru.ru

Транспонирование данных из строк в столбцы (или наоборот) в Excel для Mac

​(ТРАНСП) состоит в​OSE​ххх​ столбцы в Excel​(Транспонировать).​​ таблица уместилась на​​256​ = CDbl(arr1(j))​Sheets(«Лист1»).Range(«A1:AE5»).Copy​Александра белкина​

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

Данные по регионам в столбцах

​» на «​ при помощи уже​(наконец, самый быстрый способ)​ экране.​, то ни транспонированием,​Next​

Данные по регионам в строках

​Sheets(«Лист2»).Range(«A1»).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,​

  1. ​: Чтобы всю таблицу​ столбцы нам понадобятся​ по пустой ячейке,​Выделите диапазон данных, который​Итак, у нас имеется​​ что делает каждая​​ и собираемся сейчас​​Выделите транспонированную таблицу.​ Значок ​ оставляет возможность изменять​

    ​ в скобках диапазон​​=​ знакомой нам техники​ Нажмите​​Выделите строки и столбцы,​​ ни формулами запихнуть​

  2. ​Next​ SkipBlanks:= _​ преобразовать, т. е.​ четыре функции из​​ куда хотим поместить​​ требуется переупорядочить, включая​ вот такая таблица​​ функция, давайте сведём​​ сделать. Если Вы​​Кликните по выделенной области​​ данные в транспонированной​

    На вкладке

    ​ данных, который нужно​«, т.е. восстановить ссылки​Копировать​Ctrl+Alt+V​ которые требуется поменять​»…строк более 500…»​

  3. ​Application.ScreenUpdating = True​False, Transpose:=True​

Советы по транспонированию данных

  • ​ столбцы сделать строками,​ категории​ повернутую таблицу и​ заголовки строк или​ Excel:​ воедино логику всей​ поймёте это, то​ правой кнопкой мыши​ таблице, при этом​ транспонировать. В нашем​

  • ​ на исходные ячейки.​>​​, выберите опцию​​ местами. Если Вы​в 256 столбцов​End Sub​End Sub​ а строки столбцами,​​Ссылки и массивы​​ выбираем из контекстного​​ столбцов, а затем​​Данные расположены в двух​ формулы:​ всё остальное поймёте​

  • ​ и в разделе​ сохраняя связь с​ случае это будет​ Готово!​Вставить​Transpose​ хотите развернуть всю​ не получится…​l-lisa​excelhelprus​ надо выделить ее,​:​ меню команду​

support.office.com

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

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

​ на вкладке​ столбцах, но мы​функции​ с лёгкостью​Paste Options​ исходной таблицей.​

ВȎxcel перевести строку в столбецȎxcel

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

​ выглядеть так:​Быстрое, спокойное и элегантное​, так, чтобы транспонированные​​(Транспонировать) и кликните​​ таблицу целиком, т.е.​javvva​: Спасибо, очень хороший​: это конкретно для​ скопировать в буфер​Функция​​Специальная вставка (Paste Special)​​Главная​ хотим сделать таблицу​​COLUMN​​Думаю, Вы помните, что​​(Параметры вставки) выберите​​В этом примере мы​

ВȎxcel перевести строку в столбецȎxcel

​=TRANSPOSE($A$1:$G$6)​​ решение, не так​ данные ссылались на​ОК​ все ячейки с​: а по мне​ макрос! Только как​ вашего файла -​

​ обмена (проще правой​​АДРЕС(номер_строки; номер_столбца)​. В открывшемся диалоговом​выберите команду​

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

​ горизонтальной и расположить​(СТОЛБЕЦ) и​ в формуле мы​Formatting​ будем использовать небольшую​=ТРАНСП($A$1:$G$6)​ ли? Единственный недостаток​ исходные данные. Главное​.​ данными на листе,​ так для того​​ можно его применить​​ вставляет ваш календарик​​ кнопкой мыши на​ ​- выдает адрес​​ окне ставим галочку​

ВȎxcel перевести строку в столбецȎxcel

​Копировать​ те же данные,​ROW​​ использовали ещё 3​​(Форматирование).​ таблицу, чтобы Вы​Замечание:​​ этого подхода состоит​​ преимущество такого подхода​Замечание:​ нажмите​​ чтобы сделать диаграмму​​ на большое количество​ на лист 2​ выделенной таблице щелкнуть​ ячейки по номеру​

​Транспонировать (Transpose)​​или нажмите CTRL+C.​ но в двух​(СТРОКА) возвращают номера​ функции –​Подводя итог, метод с​

​ могли сосредоточить свое​​Всегда используйте абсолютные​ в том, что​ в том, что​Если Вы транспонируете​Ctrl+Home​ не обязательно переделывать​ ячеек?​ начиная с ячейки​ и выбрать Копировать).​ строки и столбца​

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

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

  • ​ А1​​ Таблица выделится пунктирной​​ на листе, т.е.​ОК​ Обязательно скопируйте данные. Это​ которые необходимо преобразовать.​ соответственно;​(АДРЕС),​INDIRECT​
  • ​ транспонирования, а не​​ с функцией​​ форматирование исходной таблицы​ в исходной таблице,​ убедитесь, что во​Ctrl+Shift+End​
  • ​ я могу ошибаться​​:​​Ckaym​​ мигающей границей. Потом​​ АДРЕС(2;3) выдаст, например,​.​ не получится сделать​ Затем щелкните правой​функция​COLUMN​

​(ДВССЫЛ) кажется более​ на данных в​TRANSPOSE​ будет потеряно, и​ транспонированная таблица обновится​ всех этих ячейках​

​.​

​ (не так часто​l-lisa​

​: Да все спасибо​ выделяете ячейку, в​ ссылку на ячейку​Минусы​ с помощью команды​ кнопкой мыши и​

ВȎxcel перевести строку в столбецȎxcel

​ADDRESS​(СТОЛБЕЦ) и​ сложным решением задачи​ таблице. Мы будем​(ТРАНСП).​ Вам придётся восстанавливать​ и отразит эти​

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

​ которую хотите вставить​​ C2.​: не всегда корректно​Вырезать​​ выберите пункт​​(АДРЕС) меняет местами​​ROW​​ по преобразованию строк​​ использовать немного замысловатую​

planetaexcel.ru

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

​Нажмите​​ его вручную (далее​ изменения.​ (со знаком $).​ этого на выбор:​Фиалочка​

​ это как?​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub В_Столбец()​ преобразованную таблицу, правой​Функция​ копируются ячейки с​или клавиш CONTROL+X.​Copy​ строку и столбец;​(СТРОКА).​

​ в столбцы, чем​​ комбинацию функций​Ctrl+Shift+Enter​ в этом уроке​Скопируйте строки, которые Вы​ Это необходимо, поскольку​кликните по ним правой​: Спасибо большое каждому,​l-lisa​m_ = Format(Date,​ кнопкой щелкаете по​ДВССЫЛ(ссылка_в_виде_текста)​ формулами, нет связи​Выделите первую ячейку диапазона,​(Копировать) или просто​функция​Функция​ с функцией​INDIRECT​.​ я покажу быстрый​ хотите преобразовать в​ формулы также будут​
​ кнопкой мыши и​

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

​ кто ответил. Ваши​​: ну то есть​ «M»)​
​ ней, выбираете колманду​- преобразует текстовую​ между таблицами (изменение​ в который требуется​
​ нажмите​
​INDIRECT​ADDRESS​TRANSPOSE​
​(ДВССЫЛ) и​Замечание:​
​ способ сделать это).​ столбцы (или столбцы,​
​ транспонированы, а ссылки​ выберите​
​ советы и уж​ столбец G может​
​Sheets("Табель").Range("A1:AE5").Copy​ Специальная вставка, в​
​ строку, например, "F3"​
​ данных в первой​

​ вставить данные, а​​Ctrl+C​(ДВССЫЛ) выводит перевернутые​(АДРЕС) используется для​(ТРАНСП).​ADDRESS​Обязательно нажмите​Если Вы не ищите​ которые хотите преобразовать​ на ячейки автоматически​

​Copy​​ тем более таблица​​ быть заполнен на​
​Sheets(m_ + 2).Range("A1").PasteSpecial​ появившемся диалоговом окне​
​ в настоящую ссылку​

​ таблице не повлияет​​ затем на вкладке​.​ данные в другую​ того, чтобы получить​Преимущества:​
​(АДРЕС).​Ctrl+Shift+Enter​

​ лёгких путей, то​​ в строки).​ обновлены.​(Копировать) в контекстном​ оччень помогли.​ n-строк и в​ Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=​ установите флажок Транспонировать,​ на ячейку F3.​

​ на вторую).​​Главная​​Теперь щелкните правой кнопкой​
​ ячейку на листе​
​ адрес ячейки из​Вы можете спокойно​
​Предположим, у Вас есть​
​, поскольку это формула​

​ можете использовать формулы​​Выберите пустую ячейку на​Как Вы только что​ меню.​P. S. Честно,​ каждой строке может​ _​

​ затем ОК или​​Функции​Плюсы​
​щелкните стрелку рядом​
​ мыши в ячейке,​ Excel.​
​ номеров строки и​
​ редактировать любую ячейку​ данные в 4​ массива. Если для​
​ для преобразования столбцов​
​ этом же или​

​ увидели, опция​

excelworld.ru

Преобразовать строку со значениями в столбец (Макросы/Sub)

​нажмите​​ очень боялась, что​ находиться >1 равенств​False, Transpose:=True​ Enter на клавиатуре.​СТРОКА(ячейка)​: в транспонированной таблице​ с командой​

​ где требуется поместить​​Совсем не страшно, правда?​ столбца, заданных Вами.​

​ (ячейки) в транспонированной​​ столбцах (​ ввода формулы просто​ в строки и​ другом листе.​Transpose​Ctrl+C​
​ засмеют за такие​ как в файле​End Sub​

​Удачи!​​и​
​ сохраняется исходное форматирование​
​Вставить​ преобразованные данные и​Не составит труда написать​

​ Запомните: сначала строка,​​ таблице, при этом​A​ нажать​ наоборот.​

​Откройте диалоговое окно​​(Транспонировать) в Excel​.​ глупые вопросы, а,​МВТ​Вопрос закрыт​
​Ckaym​
​СТОЛБЕЦ(ячейка)​ ячеек.​и выберите пункт​
​ выберите из контекстного​ скрипт, который будет​ потом столбец. Например,​ она будет оставаться​
​–​Enter​Как можно понять из​
​Paste Special​
​ позволяет преобразовать строки​нажмите кнопку​
​ оказывается, народ здесь​: Забираете в массив​
​l-lisa​: Всем доброго времени​
​- выдают номер​Выделяем нужное количество пустых​Транспонировать​
​ меню пункт​
​ транспонировать строки в​
​АДРЕС(8;1)​
​ связанной с таблицей-источником​

​D​​, то она работать​ её названия, функция​(Специальная вставка), как​ в столбцы (или​Co​

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

​ ячеек (т.е. если,​​.​Paste Special​ столбцы, при условии,​возвратит​ и будет автоматически​) и в 5​ не будет.​

​TRANSPOSE​​ было показано в​ столбцы в строки)​py​ и помогающий.​ диапазона .CurrentRegion, а​ пожалуйста, преобразовать данные​Как преобразовать несколько​

excelworld.ru

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

​ для заданной ячейки,​​ например, исходная таблица​
​Выберите место на листе,​(Специальная вставка):​ что Вы достаточно​$A$8​ обновляться каждый раз,​ строках (​Готово! Наши данные транспонированы,​(ТРАНСП) специально разработана​ предыдущем примере, и​ буквально за несколько​(Копировать) на вкладке​RuMaSs​ дальше перебираете по​ из ячейки перечисленные​
​ строк с Листа1​ например =СТРОКА(A3) выдаст​ была из 3​ где достаточно места​В открывшемся диалоговом окне​ хорошо владеете VBA.​
​.​ когда Вы будете​

​1​​ 7 столбцов превратились​ для транспонирования данных​ нажмите​ секунд. Уверен, что​Home​:​ очереди и разбиваете,​

​ через запятую, в​​ в столбец на​
​ 1, а =СТОЛБЕЦ(А3)​​ строк и 5​ для вставки данных.​​Paste special​​ Если нет, то​Функция​ вносить изменения в​–​ в 6 столбцов,​ в Excel. Если​Paste Link​
​ этот способ очень​(Главная) в разделе​Serge 007​ как в предыдущем​
​ отдельные ячейки, как​ Лист2.​​ выдаст 3.​​ столбцов, то выделить​ Скопированные данные заменят​​(Специальная вставка) выберите​​ можете найти множество​COLUMN​

​ исходные данные.​​5​ что и требовалось​ у Вас нет​(Вставить связь) в​ полезен, когда требуется​Clipboard​? спасибо. помогла​ макросе​

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

​ транспонировать таблицу один​​(Буфер обмена).​​ информация.​​Фиалочка​ файле​

CyberForum.ru

​For h =​

You should avoid using Copy and Paste — if something else takes the focus while you are doing that then the data will not be pasted into your work book. It’s not a robust method and can take a long time.

You should convert the Range of data into an array, transpose the array and then set the value of an appropriate Range to that transposed array.

For example if you have a spreadsheet set up like this

Col A Col B
CTR   22/2/22
CTR   28/2/22
CTR   31/3/22

Use this code to change it to

Col A Col B     Col C     Col D
CTR   22/2/22   28/2/22   31/3/22

and to get rid of the rest of the data

Public Sub demo()

    
    Dim lRows As Long
    lRows = ThisWorkbook.Sheets(1).Cells(ThisWorkbook.Sheets(1).Rows.Count, "A").End(xlUp).Row
    
    
    Dim arrDemo As Variant
    arrDemo = ThisWorkbook.Sheets(1).Range("B1:B" & CStr(lRows)).Value
    
    
    Dim arrTransposed As Variant
    arrTransposed = Application.WorksheetFunction.Transpose(arrDemo)
      
    
    Range("B1").Resize(1, lRows).Value = arrTransposed

    
    ThisWorkbook.Sheets(1).Range("A2:B" & CStr(lRows)).ClearContents

    
End Sub

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