从Excel中的函数返回单元格作为变量
我的女朋友需要用Excel公式做一些相当复杂的事情,而我一直没能为她找到答案 她想找出一系列单元格的最小值,然后,在确定了该单元格后,使用其右侧和左侧的5个值来计算所有这些值的平均值从Excel中的函数返回单元格作为变量,excel,excel-formula,Excel,Excel Formula,我的女朋友需要用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,
这可能吗?我有一个公式,可以实现您在问题中概述的内容 假设我们正在寻找一列的最小值(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个单元格(第二个偏移重复并做同样的事情,向左反转)。最后,这两个范围都用作平均值
公式的输入。对于任何单列或单行(需要找到最小值),您可以使用此公式
=(和(偏移量(范围,匹配(最小范围,范围,0)),0,-5,1,11))-MIN(范围))/10
其中,范围是单个列/行
这不包括平均值中的最小值,并且假设两边都有5个单元格(例如,最小值不能在A到e列中)我之所以回答这个问题,是因为你的女朋友 说你有下面的 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进行此操作。需要最小值的单元格范围是什么形状?这是一个单列还是一行……还是一个矩阵(多列/行)?这也是一个很好的答案,我没有想到将平均值分成两个步骤来排除查找列的值。(所以我使用了两个偏移的平均值)感谢Gimp-即使范围是一行,这也会起作用,例如,它适用于F2:F100或F2:Z2