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

Обща формула

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

Обобщение

За да намерите позицията на стойност в 2D масив, можете да използвате функцията SUMPRODUCT. В показания пример формулите, използвани за намиране на номера на редове и колони на максималната стойност в масива, са:

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

където "данни" е наименуваният диапазон C5: G14.

Забележка: за този пример ние произволно намираме местоположението на максималната стойност в данните, но можете да замените data = MAX (данни) с всеки друг логически тест, който ще изолира дадена стойност. Също така имайте предвид, че тези формули ще се провалят, ако в масива има дублирани стойности.

Обяснение

За да получите номера на реда, данните се сравняват с максималната стойност, която генерира масив от TRUE FALSE резултати. Те се умножават по резултата от ROW (данни), който генерира и масив от номера на редове, свързани с посочения диапазон "данни":

=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 да принуждава стойностите TRUE FALSE в първия масив до 1s и 0s, така че можем да визуализираме междинна стъпка по следния начин:

=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))

След това SUMPRODUCT връща резултат от 9, който съответства на 9-ия ред на работния лист. За да получим индекс спрямо посочения диапазон "данни", използваме:

-ROW(data)+1

Крайният резултат е масивът (5; 4; 3; 2; 1; 0; -1), от който се показва само първата стойност (5).

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

Забележка: Сблъсках се с този подход в коментар на Майк Ериксън на MrExcel.com. В тази нишка има и някои други добри идеи, включително опция за формула на масив.

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