For future reference you can bump threads to bring them to the top.

I realise this is only a small part of what you want done, but see if the below at least starts you off. If this is on the right track - forgive the pun - then I might see if I can finish it off.
Sub x()

Dim rTeam As Range, rPit As Range, rSector As Range, rng As Range
Dim r As Long, c As Long, r1 As Long, c1 As Long

r = 5: c = 6

With Sheets("Race Results")
    Set rTeam = .Range("C2", .Range("C2").End(xlDown))
    Set rPit = .Range("J2", .Range("J2").End(xlDown))
    Set rSector = .Range("E2", .Range("E2").End(xlDown))
    Sheets("Stint Analysis").Range("F:J").NumberFormat = "ss.000"
    For Each rng In .Range("L1", .Range("L1").End(xlDown))
        For r1 = 0 To 21 Step 3
            For c1 = 0 To 2
                Sheets("Stint Analysis").Cells(r + r1, c + c1).FormulaArray = _
                "=AVERAGE(IF(('Race Results'!" & rTeam.Address & "=" & rng.Value & ")*('Race Results'!" & rPit.Address & "='Stint Analysis'!$B" & r + r1 - 1 & "),'Race Results'!" & rSector.Offset(, c1).Address & "))"
            Next c1
        Next r1
        r = r + 24
    Next rng
End With

End Sub