Помогите найти решение. На работе часто сталкиваюсь со сгруппированными таблицами, которые необходимо привести к совершенно другому формату. Понимаю, что модно сделать в ручную, но это занимает очень много времени...
Наверняка есть решение!
P.S. не нашла на форуме решение, если была киньте ссылку. Спасибо!
Вручную или при помощи вот такой UDF проставляете уровень иерархии:
Код
Public Function GETLEVEL(rng As Range) As Byte
If rng.Count > 1 Then
GETLEVEL = CVErr(xlErrRef)
Else
GETLEVEL = rng.EntireRow.OutlineLevel
End If
End Function
Sub iGroup()
Dim i As Long
Dim n As Long
Dim iLastRow As Long
iLastRow = [A2].End(xlDown).Row
n = 17
For i = 1 To iLastRow
If Cells(i, "A").EntireRow.OutlineLevel = 1 Then
Cells(n, "A") = Cells(i, "A")
End If
If Cells(i, "A").EntireRow.OutlineLevel = 2 Then
Cells(n, "B") = Cells(i, "A")
End If
If Cells(i, "A").EntireRow.OutlineLevel = 3 Then
Cells(n, "C") = Cells(i, "A")
n = n + 1
End If
Next
iLastRow = Cells(Rows.Count, "C").End(xlUp).Row
With Range("A17:C" & iLastRow)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub