@vasiliy763
IT engineer

В Excel строки в столбец?

Здравствуйте!
Подскажите, как можно было бы автоматизировано расположить даренные вот так?
66361629baf80977399899.jpeg
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 4
Adamos
@Adamos
XLS -> CSV, регулярка, CSV -> XLS (лучше бы -> SQL, конечно).
Ответ написан
Комментировать
Tomasina
@Tomasina
Инженер-разработчик
Ответ написан
Комментировать
NikitaDvorets
@NikitaDvorets
Консалтинг / экономика / программирование (excel)
Вариант: Макрос VBA Excel
Sub massiv()

With Worksheets("Transpose")

Dim arr1() As Variant
Dim arr2() As Variant
Dim arr3() As Variant

Dim i, j, n As Integer


n = 0
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row Step 3
ReDim Preserve arr1(n)
arr1(n) = .Cells(i, 2).Value
n = n + 1
Next i

n = 0
For j = 2 To 5 Step 1
.Range("C" & j).Value = arr1(n)
n = n + 1
Next j

' ============================================
n = 0
For i = 3 To Cells(Rows.Count, 2).End(xlUp).Row Step 3
ReDim Preserve arr2(n)
arr2(n) = .Cells(i, 2).Value
n = n + 1
Next i

n = 0
For j = 2 To 5 Step 1
.Range("D" & j).Value = arr2(n)
n = n + 1
Next j

' ============================================
n = 0
For i = 4 To Cells(Rows.Count, 2).End(xlUp).Row Step 3
ReDim Preserve arr3(n)
arr3(n) = .Cells(i, 2).Value
n = n + 1
Next i

n = 0
For j = 2 To 5 Step 1
.Range("E" & j).Value = arr3(n)
n = n + 1
Next j

End With
End Sub
Ответ написан
Комментировать
@anoriyuriy
1. Решение формулами
1.1 В C3, допустим, создадим служебный столбец. Вводим 2 - это номер первой значимой строки. В C4 вводим
=C3+3 - это шаг наших данных.
Тянем вниз с запасом.
664a2f2fa6524051150256.png
1.2 Создаем область вывода: столбцы Результат1, 2, 3:
Вводим в первую ячейку области вывода формулу: =ДВССЫЛ("A"&$C3+СТОЛБЕЦ()-5)
Формула написана с привязкой к задействованным на листе диапазонам, поэтому, если у вас по другому - меняйте ссылки и константы в формулах
664a30b57e601572694091.png
1.3 Протягивайте формулу вправо и вниз
664a30feba19b854475535.png
Готово!

2. Решение с помощью Power Query - помощнее и универсальнее
2.1 Выделить диапазон, перейти на вкладку Данные, выбрать пункт Из таблицы/диапазона
664a3319bf760887228425.png
Видим такое
664a334d6912e255502243.png
Рекомендую отменить автоматический шаг и нажать крестик у шага Измененный тип в области справа
664a33907aa31315883160.png
2.2 Перейти на вкладку Добавление столбца, нажать стрелочку на кнопке Столбец индекса, выбрать От 0. Получаем вот такое
664a357dec3e4645653315.png
2.3 На той же вкладке раскрываем кнопку Стандартные и выбираем Остаток от деления Вводим параметр 3.
664a35dae2a92825393248.png
Нажимаем OK
2.4 Переходим на вкладку Преобразование и, выделив столбец Остаток от деления нажимаем кнопку Столбец сведения. В качестве столбца значений выбираем исходный, функция - Не агрегировать.
664a3704969dc733482977.png
2.5 Выделить три появившихся столбца, и нажать кнопку Заполнить - Вверх
664a3da56de78320638411.png
2.6 Правая кнопка мыши по последнему столбцу - Удалить дубликаты
664a3de3a2346456592408.png
2.7 Дальше выделить первый столбец (кликом по заголовку), на вкладке Главная нажать кнопку Удалить столбцы или Delete на клавиатуре
664a3f1817a55082112756.png
Нажать Закрыть и загрузить
664a3f998ccfd911970457.png
Готово!
664a3fac65843294038598.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы