【问题标题】:Formula for find maximum column value of the minimum row values查找最小行值的最大列值的公式
【发布时间】:2016-05-02 13:03:53
【问题描述】:

我正在寻找一个公式来找到一行最小值的最大值,以图像为例:

如您所见,现在我正在执行每一行的 min 而不是 mins 列的 max,但我的问题是我需要这样做到一个填充有外部数据连接的表,每次刷新数据时,行数都会发生变化,所以我无法插入 mins 列,因为我不知道有多少行我需要(而且,无论如何,最好不要插入另一列)......所以我需要一个公式来使用表引用获得这个结果。
我还需要 mins 的平均值。

我对数组公式不是很熟练,我不知道如何指定公式必须首先评估行 (a,b,c,d) 以获得最小值,然后评估为找到 max(或平均值)而获得的 mins 数组。

任何帮助表示赞赏

埃托雷

编辑:
忘了说表中的列比较多,在评估min时必须跳过其中的一些,看下图:

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    考虑以下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
    

    如果您希望自动扩大或缩小范围,可以通过几种不同的方式进行调整。

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

    1. ALT-F11 调出 VBE 窗口
    2. ALT-I ALT-M 打开一个新模块
    3. 粘贴内容并关闭 VBE 窗口

    如果您保存工作簿,UDF 将与它一起保存。 如果您使用的是 2003 年以后的 Excel 版本,则必须保存 文件为 .xlsm 而不是 .xlsx

    要删除 UDF:

    1. 如上所示打开 VBE 窗口
    2. 清除代码
    3. 关闭 VBE 窗口

    要使用 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

    必须启用宏才能正常工作!

    【讨论】:

    • 感谢您的详尽回复,只是我没有考虑构建一个合适的函数,我认为使用数组公式可以解决我的问题,而且自定义函数对我来说还可以。查看编辑以澄清我的问题,无论如何使用自定义函数,我认为我可以根据您的输入自行找到解决方案
    猜你喜欢
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 2015-01-16
    • 2022-06-16
    • 2012-09-16
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多