2 методов, которые я могу предложить:
Метод 1: VBA
Вот очень простой код VBA, который может выполнить то, что вы просите.
Вам просто нужно определить, где начинаются данные, а затем разместить их на соседнем листе.
По сути, есть 3 счетчика, которые отслеживают, где вы находитесь в наборе данных на любом листе.
Я уверен, что здесь есть более опытный пользователь, который может дать более краткий ответ, но это должно направить ваше мышление в правильном направлении.
Этот код повторяет каждую строку по одному значению за раз.Если у вас очень большой набор данных, то это может занять много времени.
Sub Repeat_Rows()
Dim iRows As Integer
Dim iColumns As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim start As Range
Set start = Sheet1.Range("A1")
iRows = start.End(xlDown).Row 'find out total rows of initial data
k = 0
For i = 1 To iRows
iColumns = Sheet1.Range("A" & i).End(xlToRight).Column '# columns in the row
For j = 2 To iColumns 'starts at column B
k = k + 1 'row counter for sheet 2
Sheet2.Range("A" & k).Value = Sheet1.Range("A" & i).Value
Sheet2.Range("B" & k).Value = Sheet1.Cells(i, j).Value
Next
Next
End Sub
Метод 2: Сводная таблица
Честно говоря, я не очень хорош в сводной таблицеТаблицы сам, но это определенно правдоподобный метод для использования.Просто выделите данные, создайте сводную таблицу, затем поиграйте с метками, пока не получите желаемый результат.