这个小的UDF()将为您提供更大的灵活性:
Public Function decibelle(rng As Range, N As Long) As Double
Dim wf As WorksheetFunction, i As Long, Z As Double
Set wf = Application.WorksheetFunction
For i = 1 To N
Z = Z + 10 ^ (rng(i) / 10)
Next i
decibelle = 10 * wf.Log10(Z)
End Function
Run Code Online (Sandbox Code Playgroud)
其中第一个参数是输入范围,第二个参数是输入数量:
编辑#1:
如果您希望UDF()更像SUM(),请考虑:
Public Function decibelle2(rng As Range) As Double
Dim wf As WorksheetFunction, r As Range, Z As Double
Set wf = Application.WorksheetFunction
For Each r In rng
Z = Z + 10 ^ (r.Value / 10)
Next r
decibelle2 = 10 * wf.Log10(Z)
End Function
Run Code Online (Sandbox Code Playgroud)
因此您可以像这样使用它:
=decibelle2(A1:A2)
Run Code Online (Sandbox Code Playgroud)