Saya akhirnya menulis beberapa kode VBA terima kasih @ Lance Roberts
Kode ini benar-benar akan berulang melalui setiap baris dan kolom mencari entri kosong, meraih nilai atas dan bawah dan menghitung dengan cara itu.
Satu-satunya masalah adalah ketika baris pertama jika data kosong.
Kolom-kolom tersebut diberi kode 10 karena kemalasan.
Sub SetAverages()
Dim lastrow As Integer, ncol As Integer, nrow As Integer
Dim secondvalrow As Integer, blankrows As Integer
Dim difference As Double, Increment As Double
Range("A65535").End(xlUp).Select
lastrow = ActiveCell.Row
For ncol = 2 To 10
For nrow = 2 To lastrow 'start after header row
If Cells(nrow + 1, ncol).Value = "" Then
secondvalrow = nrow + 1
Do Until Cells(secondvalrow, ncol).Value <> "" Or secondvalrow = lastrow + 1
secondvalrow = secondvalrow + 1
Loop
blankrows = secondvalrow - nrow
difference = Cells(secondvalrow, ncol).Value - Cells(nrow, ncol).Value
Increment = difference / blankrows
For i = nrow + 1 To secondvalrow - 1
Cells(i, ncol).Value = Cells(i - 1, ncol).Value + Increment
Next i
End If
Next nrow
Next ncol
End Sub