Как поменять строки и столбцы местами в таблице Word
Чтобы преобразовать строки в столбцы (транспонировать таблицу) в Microsoft Word, проще всего использовать функцию «Специальная вставка» в Excel. В самом Word встроенной кнопки для этой операции нет. Скопируйте таблицу, вставьте в Excel, примените транспонирование и верните результат обратно в документ. Это сохраняет данные и занимает меньше минуты.
Ниже рассмотрены три рабочих способа: от самого надежного (через Excel) до автоматизированного (макрос).
Оглавление
Способ 1: Через Excel (рекомендуемый)
Этот метод универсален, подходит для таблиц любого размера и сохраняет форматирование ячеек при правильной настройке.
- Выделите таблицу в Word. Нажмите на крестик в левом верхнем углу таблицы или используйте
Ctrl + A, находясь внутри неё. - Скопируйте данные (
Ctrl + C). - Откройте Microsoft Excel и вставьте таблицу в пустой лист (
Ctrl + V). - Выделите вставленные данные в Excel и снова скопируйте их (
Ctrl + C). - Кликните правой кнопкой мыши по пустой ячейке (где будет новая таблица).
- Выберите пункт Специальная вставка (Paste Special).
- В открывшемся окне поставьте галочку Транспонировать (Transpose) и нажмите OK.
- Альтернатива: В контекстном меню найдите значок «Транспонировать» (иконка с двумя стрелками, меняющими направление).
- Скопируйте полученную перевернутую таблицу из Excel.
- Вернитесь в Word и вставьте её (
Ctrl + V).
Если после вставки в Word пропали границы ячеек, выделите таблицу, перейдите на вкладку Конструктор таблиц (или Макет) → Границы → выберите Все границы.
Способ 2: Макрос VBA для постоянной работы
Если вам приходится часто менять ориентацию таблиц, лучше один раз настроить макрос. Он выполняет операцию автоматически внутри Word, не требуя перехода в Excel.
Шаг 1: Включение разработчика
- Перейдите в Файл → Параметры → Настроить ленту.
- В правом списке поставьте галочку напротив пункта Разработчик. Нажмите OK.
Шаг 2: Создание макроса
- На вкладке Разработчик нажмите кнопку Макросы.
- Введите имя, например
TransposeTable, и нажмите Создать. - В открывшемся редакторе удалите весь код и вставьте следующий:
Sub TransposeTable()
Dim tbl As Table
Dim newTbl As Table
Dim i As Long, j As Long
Dim rowCount As Long, colCount As Long
' Проверка, выделена ли таблица
If Selection.Tables.Count = 0 Then
MsgBox "Выделите таблицу перед запуском макроса!", vbExclamation
Exit Sub
End If
Set tbl = Selection.Tables(1)
rowCount = tbl.Rows.Count
colCount = tbl.Columns.Count
' Создание новой таблицы с перевернутыми размерами
' Добавляем таблицу после текущей
Dim rng As Range
Set rng = tbl.Range
rng.Collapse Direction:=wdCollapseEnd
rng.InsertParagraphAfter
rng.Collapse Direction:=wdCollapseEnd
Set newTbl = ActiveDocument.Tables.Add(rng, colCount, rowCount)
' Копирование данных
For i = 1 To rowCount
For j = 1 To colCount
newTbl.Cell(j, i).Range.Text = tbl.Cell(i, j).Range.Text
Next j
Next i
' Опционально: удалить старую таблицу
' tbl.Delete
MsgBox "Таблица транспонирована ниже исходной.", vbInformation
End Sub
- Закройте редактор VBA.
- Выделите нужную таблицу в документе и запустите макрос через кнопку Макросы → Выполнить.
Макрос создает новую таблицу под старой. Исходная таблица сохраняется. Если нужно заменить её, раскомментируйте строку tbl.Delete в коде (уберите апостроф в начале).
Способ 3: Для простых списков (замена символов)
Если у вас нет сложной таблицы с границами, а просто список данных, разделенных запятыми или табуляцией (например, Имя, Возраст, Город), можно использовать инструмент «Найти и заменить».
- Нажмите
Ctrl + H. - Нажмите кнопку Больше >>, чтобы открыть дополнительные параметры.
- В поле Найти введите разделитель (например, запятую
,или знак табуляции^t). - В поле Заменить на введите код абзаца
^p(нажмите кнопку Специальный → Знак абзаца). - Нажмите Заменить все.
Текст превратится в вертикальный список. Этот метод не подходит для полноценных таблиц с ячейками, так как разрушает структуру.
Частые ошибки
| Проблема | Причина и решение |
|---|---|
| Пропали границы ячеек | При копировании из Excel часто теряется оформление границ. Решение: в Word выделите таблицу и примените стиль границ «Все границы». |
| Текст слипся в одну ячейку | В Excel перед копированием убедитесь, что данные разбиты по разным ячейкам, а не находятся в одной длинной строке. |
| Ошибка в макросе | Макрос не сработает, если курсор стоит вне таблицы или выделено несколько таблиц сразу. Выделите строго одну таблицу. |
| Word зависает | При очень больших таблицах (более 500–1000 строк) Word может работать медленно. Используйте Excel для обработки таких массивов. |
FAQ
Можно ли транспонировать таблицу в Word Online? Нет, в веб-версии Word функция транспонирования отсутствует. Необходимо использовать десктопную версию программы или скопировать данные в Excel Online, транспонировать там и вернуть обратно.
Как повернуть текст в ячейке на 90 градусов? Это не меняет структуру таблицы (строки остаются строками), но меняет визуальное отображение текста. Выделите ячейку → вкладка Макет (Работа с таблицами) → кнопка Направление текста. Нажимайте её, пока текст не займет нужное положение.
Сохранится ли цвет ячеек при переносе через Excel?
Да, если при вставке из Excel обратно в Word вы используете обычную вставку (Ctrl + V) или «Сохранить исходное форматирование». Если цвета слетели, проверьте настройки вставки в Word (значок буфера обмена после вставки).