Реорганизация сложных данных Excel

289
Bluephlame

У меня есть сложный набор данных, которые мне нужно переставить в Excel.

Стол выглядит примерно так

+----+--------+--------+--------+--------+ | ID | Text A | Text B | Text C | Text D | +----+--------+--------+--------+--------+ | 1 | xx | | yy | zz | +----+--------+--------+--------+--------+ | 2 | | aa | bb | | +----+--------+--------+--------+--------+ | 3 | cc | | | dd | +----+--------+--------+--------+--------+ 

Результат, который мне нужен для вывода, по сути является комбинацией транспонирования и объединения. Но я понятия не имею, как решить эту проблему в Excel.

+----+------+ | ID | Text | +----+------+ | 1 | xx | +----+------+ | 1 | yy | +----+------+ | 1 | zz | +----+------+ | 2 | aa | +----+------+ | 2 | bb | +----+------+ | 3 | cc | +----+------+ | 3 | dd | +----+------+ 
0
Возможное дублирование [Excel 2007 транспонировать / объединять несколько строк в одну] (https://superuser.com/questions/244507/excel-2007-transpose-combine-multiple-rows-into-one) Máté Juhász 6 лет назад 1
Справочный вопрос дает хорошее начало, после выполнения разворота все, что вам нужно, это удалить дополнительный столбец и удалить строки с пустой ячейкой во втором столбце. Máté Juhász 6 лет назад 0
Возможный дубликат [Превратить одну строку в несколько строк в Excel] (https://superuser.com/questions/889201/turn-one-row-into-multiple-rows-in-excel) G-Man 6 лет назад 0

1 ответ на вопрос

0
Gary's Student

Это предполагает, что исходные данные находятся на Листе 1, а выходные данные будут размещены на Листе 2 .

Запуск этого короткого макроса:

Sub ReOrganizer() Dim N As Long, nCols As Long Dim i As Long, j As Long, k As Long Dim s1 As Worksheet, s2 As Worksheet  Set s1 = Sheets("Sheet1") Set s2 = Sheets("Sheet2") N = s1.Cells(Rows.Count, 1).End(xlUp).Row nCols = 5 k = 2  For i = 2 To N Item = s1.Cells(i, 1) For j = 2 To nCols If s1.Cells(i, j) <> "" Then s2.Cells(k, 1) = Item s2.Cells(k, 2) = s1.Cells(i, j) k = k + 1 End If Next j Next i End Sub 

будет принимать данные, как это в листе 1 :

enter image description here

и произвести это в Sheet2 :

enter image description here

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