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

Excel 获取三个参数中最接近的两个参数的值,excel,fetch,Excel,Fetch,我有一个excel电子表格,数据分为三列: 我需要一个函数来识别三项中最接近的两项, 这样我就可以把它们平均起来 结果应该是: 0.925 13.5 比如=平均值你的函数A1:A3,2 我希望有一种比取消MAXA1-A2、ABSA1-A3、ABSA3-A2更好的方法,首先在标准模块中输入以下自定义项: Public Function AVr(r1 As Range, r2 As Range, r3 As Range) As Variant v1 = r1.Value v2 =

我有一个excel电子表格,数据分为三列:

我需要一个函数来识别三项中最接近的两项, 这样我就可以把它们平均起来

结果应该是:

0.925
13.5
比如=平均值你的函数A1:A3,2


我希望有一种比取消MAXA1-A2、ABSA1-A3、ABSA3-A2更好的方法,首先在标准模块中输入以下自定义项:

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中输入:

=AVrA1,B1,C1

编辑:

这当然回避了一个问题:


如果值是1、2和3……您希望答案是1.5还是2.5?

是否总是只有三列?是的。至少在这种生物测试中是这样。编写yourFunction只是为了允许更复杂的函数,我的问题是具体的情况。因此,如果你有,比如说,7列数据,你仍然需要计算两个最接近的值的平均值?在这种情况下,我可能需要4或5个值的平均值谢谢!我所做的最终只是没有一个函数。我真的希望有一个excel现成的功能。。。如果是1,2&3,那么理想情况下函数返回2,但这需要更多的混乱。。。
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