1

我的女朋友需要用 Excel 公式做一些相当复杂的事情,我无法为她找到答案。

她想找到一系列单元格的最小值,然后在识别出该单元格后,使用其右侧和左侧的 5 个值来计算所有这些值的平均值。

这可能吗?

4

3 回答 3

1

我有一个公式可以完成您在问题中概述的内容。

假设我们正在寻找列的最小值 (F:F),则以下工作:

=AVERAGE(OFFSET($F1,MATCH(MIN($F:$F),$F:$F,FALSE)-1,1,1,5),OFFSET($F1,MATCH(MIN($F:$F),$F:$F,FALSE)-1,-1,1,-5))

字母 F 可以在您要使用的任何列的公式中替换。

它的工作原理是它找到Min列的 fins ,然后使用它match来查找行号,然后offsets 选择右侧的 5 个单元格(以及第二个重复的偏移量,并在左侧反转执行相同的操作)。最后,这两个范围都用作average公式的输入。

于 2012-09-04T22:58:54.293 回答
1

对于任何单列或单行(需要找到 MIN 值),您可以使用此公式

=(SUM(OFFSET(INDEX(Range,MATCH(MIN(Range),Range,0)),0,-5,1,11))-MIN(Range))/10

其中 Range 是单列/行

这从平均值中排除了 MIN 值,并且假设两边总是有 5 个单元格应该可以工作(例如,MIN 不能在 A 到 E 列中)

于 2012-09-04T23:02:34.420 回答
0

我只是因为你的女朋友才回答这个问题。

说你有以下

在此处输入图像描述

F 列是您要评估最小值的列。
在这种情况下,F6 是最小值。您将使用以下代码创建一个宏:

Sub test()

Dim val1 As String
Dim val2 As Long

val1 = WorksheetFunction.min(Range("f1:f10"))

For x = 1 To 10
    If Range("f" & x).Value = val1 Then
        val2 = WorksheetFunction.Average(Range("a" & x & ":k" & x))
        Range("m1").Value = val2
    Else
    End If
Next x

End Sub

宏将在 F 列中找到最小值,然后返回单元格 M1 中行中 11 个值的平均值。

于 2012-09-05T15:05:17.363 回答