Как автоматизировать преобразование строк в столбцы в Excel?

Как автоматизировать преобразование строк в столбцы в Excel?

У меня есть таблица с 2000 строк, структурированная следующим образом:

company   product   targetJan   targetFeb   targetMarch   targetApril ...
Google    Docs      10          20          30            40
Google    Mail      13          25          45            70

Что я хочу скрыть

Company  product  Date  Target
Google   Docs     Jan   10
Google   Docs     Feb   20
...
Google   Mail     Jan   13
...

Я понятия не имею, как с этим справиться, и не особо знаком с макросами или vba. Как мне с этим справиться?

EDIT: Я записал макрос, который выполняет эту работу, но только в первой строке, которую я указал. Теперь мне нужно выяснить, как применить его к каждым 12 строкам по всему документу:https://pastebin.com/D9yUHxZk

решение1

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

введите описание изображения здесь

Эти формулы, заполненные по принципу O2:R2 (соответственно), дают показанные результаты.

 =OFFSET($A$2,TRUNC((ROW()-2)/12),0)
 =OFFSET($B$2,TRUNC((ROW()-2)/12),0)
 =RIGHT(OFFSET($C$1,0,MOD((ROW()-2),12)),3)
 =OFFSET($C$2,TRUNC((ROW()-2)/12),MOD((ROW()-2),12))

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

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

решение2

Чтобы преобразовать строки в столбцы (транспонировать):

  • скопируйте свой диапазон
  • вставить
  • нажмите на опцию вставки (в нижнем правом углу вставленного массива)
  • нажмите на транспонирование (T)

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

удачи.

Связанный контент