У меня есть следующий список данных:

A1
1
2
3
4
5
6
7
8
9
10

и мне нужно преобразовать данные в:

A1 B1 C1 D1 E1 
1   2  3  4  5

A2 B2 C2 D2 E2
 6  7  8  9 10

2 ответа2

2

В А1 введите формулу:
=INDEX($J$1:$J$8000,(ROW()-1)*8+COLUMN())

Скопируйте формулу для всех ячеек A1:H1

В адресной строке введите «A1:H8000», затем нажмите CTRL+D, чтобы заполнить формулу всеми строками.

0

Вот код VBA. Пожалуйста, не забудьте обновить значения sourceRange, targetCell и столбцов .

Sub GenerateMatrix()
Dim rows As Integer, columns As Integer
Dim sourceRange As Range
Dim targetCell As Range
Dim cellCount As Integer, i As Integer, j As Integer
Dim arr As Variant
Set sourceRange = Range("Sheet2!A1:A10")
Set targetCell = Range("Sheet2!A1")
cellCount = sourceRange.Count
ReDim arr(1 To cellCount)
For i = 1 To cellCount
    arr(i) = sourceRange.Cells(i, 1)
Next i
columns = 5
rows = cellCount / 5
For j = 1 To rows
    For i = 1 To columns
        targetCell.Offset(j - 1, i - 1) = arr((j - 1) * columns + i)
    Next i
Next j
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .