Excel formula: Pridobite lokacijo vrednosti v 2D matriki -

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.

Zanimive Članki...