Whilst I agree that Malcolm's idea is the preferred approach, as the data blocks are not uniform in size, I think that the formula would get enormous, so I offer more VBA.
Sub minp()
Dim iLastRow As Long
Dim i As Long, j As Long
Dim aryMin(1 To 10, 1 To 2)
With ActiveSheet
iLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
'move down to first data row
i = 1
Do While .Cells(i, "A").Value = ""
i = i + 1
Loop
'now process them
Do While i <= iLastRow
ReDim arydata(1 To 10, 1 To 2)
Do While .Cells(i, "A").Value <> ""
For j = 2 To 10
.Cells(i, j).Interior.ColorIndex = xlColorIndexNone
If .Cells(i, j).Value <> "" Then
If IsEmpty(arydata(j, 1)) Then
arydata(j, 1) = .Cells(i, j).Value
arydata(j, 2) = i
ElseIf .Cells(i, j).Value < arydata(j, 1) Then
arydata(j, 1) = .Cells(i, j).Value
arydata(j, 2) = i
End If
End If
Next j
i = i + 1
Loop
For j = 2 To 10
If Not IsEmpty(arydata(j, 1)) Then
.Cells(arydata(j, 2), j).Interior.ColorIndex = 6
End If
Next j
'move down to next data row
Do While .Cells(i, "A").Value = "" And i <= iLastRow
i = i + 1
Loop
Loop
End With
End Sub