Как переключать столбцы и строки в Excel

  • Поделись Этим
Michael Brown

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

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

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

    Преобразование строк в столбцы в Excel с помощью функции Paste Special

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

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

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

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

    4. Щелкните правой кнопкой мыши ячейку назначения и выберите Специальная вставка из контекстного меню, затем выберите Транспонировать .

    Для получения дополнительной информации см. раздел Как использовать функцию Paste Special в Excel.

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

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

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

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

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

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

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

    Вы получите результат, подобный этому:

  • Выберите новую таблицу и откройте диалог Excel "Найти и заменить" (или нажмите Ctrl + H, чтобы перейти к диалогу Заменить вкладку сразу же).
  • Замените все символы "=" на "xxx" или любой другой символ(ы), который не существует нигде в ваших реальных данных.
  • Это превратит ваш стол в нечто страшноватое, как вы видите на скриншоте ниже, но не паникуйте, еще 2 шага, и вы достигнете желаемого результата.

  • Скопируйте таблицу со значениями "xxx", а затем используйте Paste Special> Transpose чтобы перевернуть столбцы в строки
  • Наконец, откройте Найти и заменить диалог еще раз, чтобы отменить изменения, т.е. заменить все "xxx" на "=", чтобы восстановить ссылки на исходные ячейки.
  • Это немного долгое, но элегантное решение, не так ли? Единственный недостаток этого подхода заключается в том, что исходное форматирование теряется в процессе, и вам придется восстанавливать его вручную (я покажу вам быстрый способ сделать это далее в этом руководстве).

    Как транспонировать в Excel с помощью формул

    Более быстрый способ динамического переключения столбцов на строки в Excel - использование формул ТРАНСПОЗИЦИЯ или ИНДЕКС/АДРЕС. Как и в предыдущем примере, эти формулы также сохраняют связи с исходными данными, но работают немного по-другому.

    Замена строк на столбцы в Excel с помощью функции ТРАНСПОЗИЦИЯ

    Как следует из названия, функция TRANSPOSE специально разработана для транспонирования данных в Excel:

    =TRANSPOSE(array)

    В этом примере мы собираемся преобразовать другую таблицу, в которой перечислены штаты США по численности населения:

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

      Например, в нашей таблице-образце 7 столбцов и 6 строк, включая заголовки. Поскольку функция TRANSPOSE изменит столбцы на строки, мы выберем диапазон из 6 столбцов и 7 строк.

    2. Выделив пустые ячейки, введите эту формулу:

      =TRANSPOSE(A1:G6)

    3. Поскольку наша формула должна применяться к нескольким ячейкам, нажмите Ctrl + Shift + Enter, чтобы сделать ее формулой массива.

    Вуаля, столбцы заменены на строки, как мы и хотели:

    Преимущества функции TRANSPOSE:

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

    Слабые стороны функции TRANSPOSE:

    • Оригинальное форматирование таблицы не сохраняется в преобразованной таблице, как показано на скриншоте выше.
    • Если в исходной таблице есть пустые ячейки, то транспонированные ячейки будут содержать 0. Чтобы исправить это, используйте TRANSPOSE в сочетании с функцией IF, как описано в примере: Как транспонировать без нулей.
    • Вы не можете редактировать ячейки в повернутой таблице, поскольку она очень сильно зависит от исходных данных. Если вы попытаетесь изменить значение какой-либо ячейки, вы получите ошибку "Вы не можете изменить часть массива".

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

    Для получения дополнительной информации см. функцию Excel TRANSPOSE с примерами.

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

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

    Предположим, у вас есть данные в 4 столбцах (A - D) и 5 строках (1 - 5):

    Чтобы переключить столбцы на строки, сделайте следующее:

    1. Введите приведенную ниже формулу в самую левую ячейку диапазона назначения, например A7, и нажмите клавишу Enter:

      =INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))

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

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

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

    =INDIRECT(ADDRESS(COLUMN(A1) - COLUMN($A$1) + ROW($A$1), ROW(A1) - ROW($A$1) + COLUMN($A$1)))))

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

    Однако перенесенные ячейки выглядят очень просто и скучно по сравнению с исходными данными:

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

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

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

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

    Как работает эта формула

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

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

    Как вы помните, в формуле мы использовали еще 3 функции - ADDRESS, COLUMN и ROW.

    Функция ADDRESS получает адрес ячейки по указанным вами номерам строки и столбца соответственно. Пожалуйста, запомните порядок: первый - строка, второй - столбец.

    В нашей формуле мы задаем координаты в обратном порядке, и это то, что действительно делает трюк! Другими словами, эта часть формулы ADDRESS(COLUMN(A1),ROW(A1)) меняет строки на столбцы, т.е. берет номер столбца и меняет его на номер строки, затем берет номер строки и меняет его на номер столбца.

    Наконец, функция INDIRECT выводит повернутые данные. Ничего ужасного, не так ли?

    Транспонирование данных в Excel с помощью макроса VBA

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

    Sub TransposeColumnsRows() Dim SourceRange As Range Dim DestRange As Range Set SourceRange = Application.InputBox(Prompt:= "Please select the range to transpose" , Title:= "Transpose Rows to Columns" , Type :=8) Set DestRange = Application.InputBox(Prompt:= "Select the upper left cell of the destination range" , Title:= "Transpose Rows to Columns" , Type :=8) SourceRange.Copy DestRange.SelectSelection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False , Transpose:= True Application.CutCopyMode = False End Sub

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

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

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

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

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

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

    Переключение столбцов и строк с помощью инструмента "Транспонировать

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

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

    1. Выберите любую отдельную ячейку в таблице, перейдите в меню Ablebits вкладка> Преобразование группу, и нажмите кнопку Транспонировать кнопка.

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

    Готово! Таблица транспонирована, форматирование сохранено, дальнейшие манипуляции не требуются:

    Если вам интересно попробовать этот и 70+ других профессиональных инструментов для Excel, приглашаю вас загрузить пробную версию нашего пакета Ultimate Suite. Спасибо за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.