用于查找最小行值的最大列值的公式

时间:2016-05-02 13:03:54

标签: excel excel-formula

我正在寻找一个公式来查找行的最小值的最大值,请查看图片以获取示例:

example

正如您所看到的,现在我正在执行每行min而不是 mins 列的max,但我的问题是我需要对一个填充了外部数据连接的表执行此操作,每次刷新数据时行数都会更改,因此我无法插入 mins 列,因为我不知道我需要多少行(而且,最好不要插入另一列)...所以我需要一个公式来使用表格参考获得这个结果。
我还需要 mins 的平均值。

我不熟悉数组公式,我无法弄清楚我如何指定公式必须首先评估行(a,b,c,d)以获得min,然后评估为获取 max (或avarage)而获得的 mins 数组。

任何帮助表示赞赏

Ettore

修改
我忘了说表中有更多列,在评估 min 时必须跳过其中的一些,请考虑下面的图片:

second example

1 个答案:

答案 0 :(得分:0)

考虑以下 UDF()

Public Function MiniMax(r As Range) As Variant
    Dim wf As WorksheetFunction, i As Long, j As Long
    Dim nLastRow As Long, nLastColumn As Long
    Dim nFirstRow As Long, nFirstColumn As Long
    Dim numrow As Long, numcol As Long, k As Long

    nLastRow = r.Rows.Count + r.Row - 1
    nLastColumn = r.Columns.Count + r.Column - 1
    nFirstRow = r.Row
    nFirstColumn = r.Column
    numrow = r.Rows.Count
    numcol = r.Columns.Count

    With Application.WorksheetFunction
        k = 1
        ReDim ary(1 To numrow)
        For i = nFirstRow To nLastRow
            ary(k) = .Min(Range(Cells(i, nFirstColumn), Cells(i, nLastColumn)))
            k = k + 1
        Next i

        MiniMax = .Max(ary)
    End With
End Function

enter image description here

如果您希望自动扩展或缩小范围,可以通过几种不同的方式实现。

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      = myfunction的(A1)

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!