Есть ли способ получить максимальное значение диапазона значений, используя стандартные функции Excel?
Больше информации
- Я хочу найти максимальное значение в диапазоне ячеек. A1:
=max(A2:A10)
- Однако я не хочу находить максимум значения в самих ячейках, а скорее связанный с ним набор значений, полученный путем выполнения vlookup для этих ячеек. то есть B2:
=vlookup(A2,MyLookupName,2,false)
(скопируйте формулу B2 до B10). A1:=max(B2:B10)
. - Вместо того, чтобы делать это за 2 шага (т.е. выполнить vlookup в столбце B, а затем сделать максимум по сравнению с ячейкой A1), я бы предпочел иметь одну формулу, которая применяет оба шага в одном, в той же ячейке. т.е. A1:
{=max(vlookup(A2:A10,MyLookupName,2,false))}
Однако эта последняя формула не работает, поскольку функция VLOOKUP принимает только одну ячейку для параметра Lookup_Value
; если диапазон пройден, он берет верхнюю левую ячейку из этого диапазона.
VBA Solution
Чтобы лучше проиллюстрировать функциональность, к которой я стремлюсь, я кодировал функцию рабочего листа VBA, которая будет делать то, что мне нужно; Однако я пытаюсь избежать пользовательских макросов.
Public Function MaxVLookup(ByRef Lookup_Array As Range, ByRef Table_Array As Range, Col_Index_Num As Long) As Variant
Dim v As Variant, temp As Variant, max As Variant
max = Null
For Each v In Lookup_Array
temp = WorksheetFunction.VLookup(v, Table_Array, Col_Index_Num, False)
If IsNull(max) Then
max = temp
Else
If max < temp Then
max = temp
End If
End If
Next
MaxVLookup = max
End Function