我的女朋友需要做一些与Excel公式相当复杂的事情,我一直无法为她找到答案。从Excel中的函数返回单元格作为变量
她希望找到一个细胞范围的最小值,然后,在识别该细胞后,使用其右侧和左侧的5个值来计算所有这些值的平均值。
这可能吗?
我的女朋友需要做一些与Excel公式相当复杂的事情,我一直无法为她找到答案。从Excel中的函数返回单元格作为变量
她希望找到一个细胞范围的最小值,然后,在识别该细胞后,使用其右侧和左侧的5个值来计算所有这些值的平均值。
这可能吗?
我有一个公式可以完成你在你的问题中列出的内容。
假设我们正在寻找一个列的民(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
S选择5个细胞的权利(和第二偏移重复和做同样的事情反转到左侧)。最后,这两个范围均用作average
公式的输入。
对于任何单个列或单列(其中MIN值需要被找到),则可以使用此公式
=(SUM(OFFSET(INDEX(Range,MATCH(MIN(Range),Range,0)),0,-5,1,11))-MIN(Range))/10
在哪里范围是单个列/行
这不包括MIN价值从平均值,应该工作假设总是有5个单元格任何一方(例如MIN不能在列A到E)
也是一个很好的答案,我没有想到将平均分为两步,就像这样排除查找列的值。 (所以我使用了两个偏移的平均值) – danielpiestrak
Thanks Gimp - 即使范围是连续的,也可以工作。它适用于F2:F100或F2:Z2 –
我只是回答这个问题,因为你的女朋友。
假设你有以下
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个值的平均值。
如果没有任何限制,可以使用VBA来实现。 –
你需要MIN的单元格的范围是什么形状?它是一个单列还是一行......还是一个矩阵(多列/多行)? –