Formula Excel: indexați și potriviți pe mai multe coloane -

Formula generică

(=INDEX(rng1,MATCH(1,MMULT(--(rng2=critera),TRANSPOSE(COLUMN(rng2)^0)),0)))

rezumat

Pentru a căuta o valoare prin potrivirea între mai multe coloane, puteți utiliza o formulă matrice bazată pe MMULT, TRANSPOSE, COLUMN și INDEX. În exemplul prezentat, formula din H4 este:

(=INDEX(groups,MATCH(1,MMULT(--(names=G4),TRANSPOSE(COLUMN(names)^0)),0)))

unde „nume” este gama numită C4: E7, iar „grupuri” este gama numită B4: B7. Formula returnează grupul căruia îi aparține fiecare nume.

Notă: aceasta este o formulă de matrice și trebuie introdusă cu control shift shift enter.

Explicaţie

Lucrând din interior spre exterior, criteriile logice utilizate în această formulă sunt:

--(names=G4)

unde numele este intervalul numit C4: E7. Acest lucru generează un rezultat TRUE / FALSE pentru fiecare valoare din date, iar negativul dublu constrânge valorile TRUE FALSE la 1 și 0 pentru a produce o matrice de acest fel:

(0,0,0;1,0,0;0,0,0;0,0,0)

Această matrice are 4 rânduri pe 3 coloane, care se potrivesc cu structura „nume”.

O a doua matrice este creată cu această expresie:

TRANSPOSE(COLUMN(names)^0))

Funcția COLUMN este utilizată pentru a crea o matrice numerică cu 3 coloane și 1 rând, iar TRANSPOSE convertește această matrice în 1 coloană și 3 rânduri. Creșterea la puterea zero convertește pur și simplu toate numerele din matrice în 1. Funcția MMULT este apoi utilizată pentru a efectua multiplicarea matricei:

MMULT((0,0,0;1,0,0;0,0,0;0,0,0),(1;1;1))

iar rezultatul intră în funcția MATCH ca matrice, cu 1 ca valoare de căutare:

MATCH(1,(0;1;0;0),0)

Funcția MATCH returnează poziția primei potriviri, care corespunde rândului primului rând care corespunde criteriilor furnizate. Acesta este introdus în INDEX ca număr de rând, cu gama numită „grupuri” ca matrice:

=INDEX(groups,2)

În cele din urmă, INDEX returnează „Ursul”, grupul din care face parte Adam.

Literalul conține criterii

Pentru a verifica valorile textului specific în loc de o potrivire exactă, puteți utiliza împreună funcțiile ISNUMBER și SEARCH. De exemplu, pentru a se potrivi celulelor care conțin „măr” puteți utiliza:

=ISNUMBER(SEARCH("apple",data))

Această formulă este explicată aici.

Legături bune

Răspuns Stackoverflow de XOR LX

Articole interesante...