Формула Excel: получить местоположение значения в 2D-массиве -

Общая формула

=SUMPRODUCT((data=MAX(data))*ROW(data))-ROW(data)+1

Резюме

Чтобы определить положение значения в 2D-массиве, вы можете использовать функцию СУММПРОИЗВ. В показанном примере формулы, используемые для определения номеров строк и столбцов максимального значения в массиве, следующие:

=SUMPRODUCT((data=MAX(data))*ROW(data))-ROW(data)+1 =SUMPRODUCT((data=MAX(data))*COLUMN(data))-COLUMN(data)+1

где «данные» - именованный диапазон C5: G14.

Примечание: в этом примере мы произвольно находим местоположение максимального значения в данных, но вы можете заменить data = MAX (data) любым другим логическим тестом, который будет изолировать данное значение. Также обратите внимание, что эти формулы не работают, если в массиве есть повторяющиеся значения.

Объяснение

Чтобы получить номер строки, данные сравниваются с максимальным значением, в результате чего создается массив результатов ИСТИНА ЛОЖЬ. Они умножаются на результат ROW (data), который генерирует, и массив номеров строк, связанных с именованным диапазоном «data»:

=SUMPRODUCT((FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,TRUE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE)*(5;6;7;8;9;10;11))

Операция умножения заставляет Excel приводить значения ИСТИНА ЛОЖЬ в первом массиве к 1 и 0, поэтому мы можем визуализировать промежуточный шаг следующим образом:

=SUMPRODUCT((0,0,0,0,0;0,0,0,0,0;0,0,0,0,0;0,0,0,0,0;0,0,1,0,0;0,0,0,0,0;0,0,0,0,0)*(5;6;7;8;9;10;11))

Затем СУММПРОИЗВ возвращает результат 9, что соответствует 9-й строке на листе. Чтобы получить индекс относительно именованного диапазона «data», мы используем:

-ROW(data)+1

Конечным результатом является массив (5; 4; 3; 2; 1; 0; -1), из которого отображается только первое значение (5).

Формула для определения позиции столбца работает точно так же.

Примечание: я столкнулся с этим подходом в комментарии Майка Эриксона на MrExcel.com. В этом потоке есть и другие хорошие идеи, включая вариант формулы массива.

Интересные статьи...