我有一个包含三列数据的Excel电子表格:
0.89 1.2 0.96
12.3 14.7 20.2
我需要一个识别三个中最接近的两个项目的函数, 所以我可以平均他们之间。
结果应该是:
0.925
13.5
类似于=AVERAGE(__yourFunction__(A1:A3,2))
我希望有一种比消除MAX(ABS(A1-A2),ABS(A1-A3),ABS(A3-A2))
答案 0 :(得分:0)
首先在标准模块中输入以下UDF:
Public Function AVr(r1 As Range, r2 As Range, r3 As Range) As Variant
v1 = r1.Value
v2 = r2.Value
v3 = r3.Value
d12 = Abs(v1 - v2)
d13 = Abs(v1 - v3)
d23 = Abs(v2 - v3)
mn = Application.WorksheetFunction.Min(d12, d13, d23)
If mn = d12 Then
AVr = (v1 + v2) / 2
Exit Function
End If
If mn = d13 Then
AVr = (v1 + v3) / 2
Exit Function
End If
AVr = (v2 + v3) / 2
End Function
然后将值放在 A1 , B1 和 C1 中。
最后在 D1 中输入:
= AVR(A1,B1,C1)
修改强>
这当然引出了一个问题:
如果值是1.,2。和3 ......你期望1.5或2.5作为答案???