从三个中获取两个最接近的参数的值

时间:2014-03-01 11:24:02

标签: excel fetch

我有一个包含三列数据的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))

更好的方法

1 个答案:

答案 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作为答案???