当我查找min / max时,不仅我想要结果,还有结果所在的单元格名称以及它的范围名称。
e.g。 = MAX(B2:C20)
B6中的最大值为100,B6是名为第1周的命名范围的一部分。
因此,我们希望有一个可以检索的公式:
100,B6,WEEK 1
请帮助,我整夜都在寻找这个。
非常感谢。
答案 0 :(得分:1)
在这种情况下,我将范围B5:B7
定义为名称WEEK1
:
和这个简短的 UDF():
Public Function FindMax(rIN As Range) As String
Dim mx As Variant, rF As Range, N As Name
mx = Application.WorksheetFunction.Max(rIN)
Set rF = rIN.Find(What:=mx, After:=rIN(1))
For Each N In ThisWorkbook.Names
If Not Intersect(rF, Range(N.RefersTo)) Is Nothing Then
lab = N.Name
End If
Next N
FindMax = mx & ", " & rF.Address(0, 0) & ", " & lab
End Function
返回:
您必须小心排除打印范围等。
修改#1:强>
用户定义函数(UDF)非常易于安装和使用:
如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除UDF:
从Excel使用UDF:
=FindMax(A1:Z100)
要了解有关宏的更多信息,请参阅:
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
必须启用宏才能使其生效!