Excel vzorec: Získajte umiestnenie hodnoty v 2D poli -

Všeobecný vzorec

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

Zhrnutie

Na vyhľadanie polohy hodnoty v 2D poli môžete použiť funkciu SUMPRODUCT. V zobrazenom príklade sú vzorce použité na vyhľadanie čísel riadkov a stĺpcov maximálnej hodnoty v poli:

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

kde „údaj“ je pomenovaný rozsah C5: G14.

Poznámka: V tomto príklade svojvoľne nájdeme umiestnenie maximálnej hodnoty v dátach, ale údaj = MAX (dáta) môžete nahradiť akýmkoľvek iným logickým testom, ktorý izoluje danú hodnotu. Upozorňujeme, že tieto vzorce zlyhajú, ak sú v poli duplicitné hodnoty.

Vysvetlenie

Ak chcete získať číslo riadku, údaje sa porovnajú s maximálnou hodnotou, ktorá vygeneruje pole výsledkov TRUE FALSE. Tieto sa vynásobia výsledkom ROW (údaje), ktoré generuje a pole čísel riadkov spojených s pomenovaným rozsahom „údaje“:

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

Operácia násobenia spôsobí, že program Excel vynúti hodnoty TRUE FALSE v prvom poli na 1 s a 0 s, takže môžeme vizualizovať medzikrok takto:

=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 potom vráti výsledok 9, ktorý zodpovedá 9. riadku v hárku. Na získanie indexu vo vzťahu k pomenovanému rozsahu „data“ používame:

-ROW(data)+1

Konečným výsledkom je pole (5; 4; 3; 2; 1; 0; -1), z ktorého sa zobrazí iba prvá hodnota (5).

Rovnakým spôsobom funguje vzorec na určenie polohy stĺpca.

Poznámka: Na tento prístup som narazil v komentári Mika Ericksona na MrExcel.com. V tomto vlákne sú aj niektoré ďalšie dobré nápady, vrátane možnosti maticového vzorca.

Zaujímavé články...