@p45cal
This might improve speed too:
But you should realise that Evaluat is a very compactly written arrayformula. Arrayformulae do not speed up things in general.If colm > 1 Then sn= Evaluate("transpose(row(1:" & colm - 1 & "))") cells(j,5) = Application.Sum(.Index(resultsAry, rw, sn)) End If