从Excel中的函数返回单元格作为variables

我的女朋友需要做一些与Excel公式相当复杂的事情,我一直没能find答案。

她希望find一个单元格范围的最小值,然后在识别出这个单元格的情况下,使用右边和左边的5个值来计算所有这些值的平均值。

这可能吗?

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

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

其中范围是单列/行

这从平均值中排除了MIN值,并且应该假设任何一方总是有5个单元格(例如,MIN不能在列A到E中)

我有一个公式可以完成你在问题中提到的内容。

假设我们正在寻找一列(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可以在公式中replace为您要使用的列。

这是如何工作的,它鳍柱的Min ,然后用它来match查找行号,然后offset sselect右侧的5个单元格(和重复的第二个偏移量,并做同样的事情向左)。 最后,这两个范围都用作average公式的input。

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

假设你有下面的内容

在这里输入图像说明

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

 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 

macros将在列F中find最低值,然后返回单元格M1中行中11个值的平均值。