Nižšie je moja aktuálna tabuľka programu Excel:
Chcem automaticky generovať tretí stĺpecako hierarchický pohľad na všetky činnosti. Snažil som sa riešiť túto výzvu vzorcami, ale nie som si istý, či by to bol najlepší spôsob, ako to urobiť.
Má niekto už stál a vyriešiť túto požiadavku v programe Excel? Akékoľvek rady / návrhy, ktoré ma sprevádzajú?
Ďakujeme a pozdravujeme!
odpovede:
0 pre odpoveď č. 1Toto makro môžete prilepiť do Kód modulu pracovného hárka a spustite ho odtiaľ:
Sub CalculateHierarchy()
Dim rLevels As Range, rLevel As Range
Dim level As Integer, maxLevels As Integer, cur As Integer, i As Integer
Dim h As String, counts() As Integer
Set rLevels = Range("A2:A" & Range("A1").End(xlDown).Row)
maxLevels = WorksheetFunction.Max(rLevels)
ReDim counts(1 To maxLevels)
cur = 1
For Each rLevel In rLevels
level = rLevel.Value
If level > cur + 1 Then
rLevel.Activate
MsgBox "error at row " & rLevel.Row & " level increase by more than 1"
Exit Sub
End If
h = ""
counts(level) = counts(level) + 1
For i = 1 To level
h = h & "." & counts(i)
Next
h = Mid(h, 2)
For i = level + 1 To UBound(counts)
counts(i) = 0
Next
rLevel.Offset(, 2).Value = h
cur = level
Next
rLevel.Offset(0, 2).Interior.ColorIndex = 6
End Sub