Option Explicit
Function dm(ByVal R As Range, Optional ByVal m As Long) As Double
Dim t(), S As Double, i As Long
If R.Rows.Count = 1 Then ReDim t(1 To 1, 1 To 1): t(1, 1) = R.Value Else t = R.Value
If m = 0 Then m = UBound(t, 1)
For i = 1 To m: S = S + (m - i + 1) * t(i, 1): Next i
dm = S / m
End Function