
Splošna formula
=SUMPRODUCT((data=MAX(data))*ROW(data))-ROW(data)+1
Povzetek
Če želite poiskati položaj vrednosti v 2D matriki, lahko uporabite funkcijo SUMPRODUCT. V prikazanem primeru so formule, uporabljene za iskanje številk vrstic in stolpcev največje vrednosti v matriki, naslednje:
=SUMPRODUCT((data=MAX(data))*ROW(data))-ROW(data)+1 =SUMPRODUCT((data=MAX(data))*COLUMN(data))-COLUMN(data)+1
kjer je "podatki" imenovano območje C5: G14.
Opomba: v tem primeru v podatkih poljubno najdemo lokacijo največje vrednosti, lahko pa podatke = MAX (podatki) nadomestimo s katerim koli drugim logičnim testom, ki bo izoliral dano vrednost. Upoštevajte tudi, da te formule ne bodo uspele, če bodo v matriki podvojene vrednosti.
Pojasnilo
Če želite dobiti številko vrstice, se podatki primerjajo z največjo vrednostjo, ki ustvari niz TRUE FALSE rezultatov. Ti se pomnožijo z rezultatom ROW (podatki), ki generira in niz številk vrstic, povezanih z imenovanim obsegom "podatki":
=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))
Operacija množenja povzroči, da Excel prisili vrednosti TRUE FALSE v prvem polju na 1s in 0s, zato lahko vizualiziramo vmesni korak, kot je ta:
=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))
Nato SUMPRODUCT vrne rezultat 9, kar ustreza 9. vrstici na delovnem listu. Za pridobitev indeksa glede na imenovani obseg "podatki" uporabimo:
-ROW(data)+1
Končni rezultat je matrika (5; 4; 3; 2; 1; 0; -1), iz katere je prikazana samo prva vrednost (5).
Formula za določitev položaja stolpca deluje na enak način.
Opomba: Na tak pristop sem naletel v komentarju Mikea Ericksona na MrExcel.com. V tej niti je tudi nekaj drugih dobrih idej, vključno z možnostjo formule matrike.