我的女朋友需要用Excel公式做一些相当复杂的事情,而我却找不到她的答案。
她希望找到一系列单元格的MIN,然后,在识别出该单元格后,使用其右侧和左侧的5个值来计算所有这些值的平均值。
这可能吗?
答案 0 :(得分: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
进行处理,然后使用match
来查找行号,然后使用offset
来选择右侧的5个单元格(和重复的第二个偏移,并向左反转同样的事情)。最后,这两个范围都用作average
公式的输入。
答案 1 :(得分:1)
对于任何单列或单行(需要找到MIN值),您可以使用此公式
=(SUM(OFFSET(INDEX(Range,MATCH(MIN(Range),Range,0)),0,-5,1,11))-MIN(Range))/10
Range是单列/行
这会从平均值中排除MIN值,并且应该假设任何一侧总共有5个单元格(例如MIN不能在A列到E列中)
答案 2 :(得分: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个值的平均值。