немного не оптимально.
1. зачем использовать дополнительный массив, если у нас он фактически уже есть - наша таблица?
2. зачем использовать несколько циклов, когда можно все сделать в один?
3. инициализировать значения можно первым элементом массива а не единицей. при этом сокращается кол-во действий в цикле
а в остальном ваша программа должна работать ;)
p = Cells(1, 1)
Max = Cells(1, 1)
For i = 2 To 5
p = p * Cells(i, 1)
If (Max < Cells(i, 1)) Then Max = Cells(i, 1)
Next i
Sr = p ^ (1 / 5)
Sum = Max + Sr
Cells(1, 2) = "Average = "
Cells(1, 3) = Sr
Cells(2, 2) = "Sum = "
Cells(2, 3) = Sum