As an alternative : 
Sub MyTest()
Dim collSchollDegree As New Collection, collLevel As New Collection
Dim arrIn, arrOut(), i As Long, p1 As Long, p2 As Long, str1 As String
arrIn = Range("A1").CurrentRegion.Resize(, 5).Value
On Error Resume Next
For i = 2 To UBound(arrIn, 1)
str1 = Split(arrIn(i, 3), "'")(0): arrIn(i, 5) = str1
collLevel.Add Key:=str1, Item:=Array(str1, collLevel.Count + 1)
collSchollDegree.Add Key:=arrIn(i, 1) & Chr(2) & arrIn(i, 2), Item:=collSchollDegree.Count + 1
Next i
On Error GoTo 0
ReDim arrOut(1 To (collSchollDegree.Count + 1), 1 To (collLevel.Count + 2))
arrOut(1, 1) = "school": arrOut(1, 2) = "degree": For i = 1 To collLevel.Count: arrOut(1, i + 2) = collLevel(i)(0): Next i
For i = 2 To UBound(arrIn, 1)
p1 = collSchollDegree(arrIn(i, 1) & Chr(2) & arrIn(i, 2)) + 1
p2 = collLevel(arrIn(i, 5))(1) + 2
arrOut(p1, 1) = arrIn(i, 1)
arrOut(p1, 2) = arrIn(i, 2)
arrOut(p1, p2) = arrOut(p1, p2) + arrIn(i, 4)
Next i
Range("G1").Resize(UBound(arrOut, 1), UBound(arrOut, 2)).Value = arrOut
MsgBox "Done"
End Sub
Bookmarks