Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Excel中的函数返回单元格作为变量_Excel_Excel Formula - Fatal编程技术网

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

从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,

我的女朋友需要用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个单元格(第二个偏移重复并做同样的事情,向左反转)。最后,这两个范围都用作
平均值
公式的输入。

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

=(和(偏移量(范围,匹配(最小范围,范围,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