I also worked out your full org chart with this macro;
Private Sub CommandButton2_Click()
Dim EmployeeCount As Long
Dim TotalEmployees As Long
Dim StartRow As Long
Dim Row As Long
Dim StartCol, Col, acol As Long
Dim lrow As Long
Dim ManagementLevel As Integer
StartRow = 2
StartCol = 13
lrow = Cells(Rows.Count, 1).End(xlUp).Row
TotalEmployees = lrow - StartRow + 1
ManagementLevel = 1
Range("L" & StartRow & ":IV999") = ""
' first find ceo
For Row = StartRow To lrow
If Range("B" & Row).Value = Range("A" & Row).Value Then
Cells(ManagementLevel, StartCol).Value = Range("B" & Row).Value
EmployeeCount = EmployeeCount + 1
End If
Next Row
Range("L" & ManagementLevel).Value = ManagementLevel
ManagementLevel = ManagementLevel + 1
Do Until EmployeeCount >= TotalEmployees
acol = StartCol
For Col = StartCol To 999
If Cells(ManagementLevel - 1, Col) = "" Then Exit For 'end of line
If Cells(ManagementLevel - 1, Col) <> "*" Then 'next manager
For Row = StartRow To lrow
If Range("A" & Row).Value <> Cells(ManagementLevel - 1, Col).Value Then 'ignore CEO
If Range("B" & Row).Value = Cells(ManagementLevel - 1, Col).Value Then 'Found a report
Cells(ManagementLevel, acol).Value = Range("A" & Row).Value
EmployeeCount = EmployeeCount + 1
acol = acol + 1
End If
End If
Next Row
End If
Cells(ManagementLevel, acol).Value = "*"
acol = acol + 1
Next Col
Range("L" & ManagementLevel).Value = ManagementLevel
ManagementLevel = ManagementLevel + 1
Loop
End Sub
It puts an asterisk (*) at the end of each reporting stream as a separator.
See attached.
Bookmarks