我正在寻找一个公式来查找行的最小值的最大值,请查看图片以获取示例:
正如您所看到的,现在我正在执行每行min
而不是 mins 列的max
,但我的问题是我需要对一个填充了外部数据连接的表执行此操作,每次刷新数据时行数都会更改,因此我无法插入 mins 列,因为我不知道我需要多少行(而且,最好不要插入另一列)...所以我需要一个公式来使用表格参考获得这个结果。
我还需要 mins 的平均值。
我不熟悉数组公式,我无法弄清楚我如何指定公式必须首先评估行(a,b,c,d)以获得min,然后评估为获取 max (或avarage)而获得的 mins 数组。
任何帮助表示赞赏
Ettore
修改
我忘了说表中有更多列,在评估 min 时必须跳过其中的一些,请考虑下面的图片:
答案 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
如果您希望自动扩展或缩小范围,可以通过几种不同的方式实现。
用户定义函数(UDF)非常易于安装和使用:
如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除UDF:
从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
必须启用宏才能使其生效!