2016-08-03 2 views
-1

У меня есть данные для каждого месяца более 50 лет. Таким образом, все данные находятся в столбце и сортируются по дате, а затем представляют интересующую информацию. Мне нужно переносить все месяцы каждого года. Вот пример моих данных. Все ... где данные продолжаются. То, что слева, - это то, что у меня есть. То, что справа, - то, что мне нужно. Как я могу создать цикл транспонирования для этого?Макро для Транспонирования каждые 12 строк

enter image description here

+1

Язык в щеке: - Откройте редактор Visual Basic, вставьте модуль, начните кодирование. Более «здравый» ответ: - Какой код вы подготовили до сих пор? Какие проблемы возникают при запуске? Какие сообщения об ошибках вы получаете? Вы пробовали записывать, что происходит, когда вы делаете некоторые шаги вручную? – YowE3K

+0

вы можете посмотреть на обратный [этот код] (http://stackoverflow.com/questions/34166267/transpose-every-2nd-and-3rd-line?rq=1) и изменить счет до 12 вместо 2 или 3. Посмотрите, поможет ли это вам: –

ответ

1

NON VBA РЕШЕНИЕ:

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

=INDEX($B:$B,(COLUMN(D1)-COLUMN($D$1)+1)+(ROW(D1)-ROW($D$1))*12) 

Вы можете отрегулировать полное описание столбца B: B в соответствии с вашими данными. Измените D1 на любую ячейку, которую вы выбрали для верхнего левого угла. Измените +1, чтобы отразить начальную строку ваших данных. Число 12 представляет собой количество строк, которые по существу транспонируются. Скопируйте его по 12 столбцам, затем скопируйте 12 ячеек до тех пор, пока это необходимо.

Доказательство концепции

POF

EDIT:

=INDEX($B:$B,(COLUMN(D1)-COLUMN($D$1)+ROW(B1))+(ROW(D1)-ROW($D$1))*12) 

где B1 является первой строки вашего значения для транспонирования.

+1

Отличное решение, но одно предостережение - для этого требуется, чтобы данные существовали в строке 1 (что, вероятно, это делает), но если это не так (возможно, из-за заголовков), вам понадобится добавить смещение к вашему расчету - например если исходные данные начинаются в строке 5, тогда вам нужно будет добавить 4 к вашим расчетам. – YowE3K

+0

Ваше правление избавилось от моего предостережения - я бы хотел, чтобы я мог дважды повышать! – YowE3K

+0

Редактирование происходит из-за вашего положительного комментария наряду с повышением. –

Смежные вопросы