Formula Excel: găsiți cel mai lung șir cu criterii -

Formula generică

(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))

rezumat

Pentru a găsi cel mai lung șir dintr-un interval cu criterii, puteți utiliza o formulă matrice bazată pe INDEX, MATCH, LEN și MAX. În exemplul prezentat, formula din F6 este:

(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))

Unde „nume” este intervalul numit C5: C14, iar „clasă” este intervalul numit B5: B14.

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

Explicaţie

Nucleul acestei formule este funcția MATCH, care localizează poziția celui mai lung șir folosind criteriile furnizate:

MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)

Notă MATCH este configurat pentru a efectua o potrivire exactă furnizând zero pentru tipul de meci. Pentru valoarea de căutare, avem:

LEN(names)*(class=F5)

Funcția LEN returnează o serie de rezultate (lungimi), câte unul pentru fiecare nume din lista unde class = "A" din celula F5:

(5;6;8;6;6;0;0;0;0;0)

Aceasta filtrează efectiv toată clasa B, iar funcția MAX returnează apoi cea mai mare valoare, 8.

Pentru a construi o matrice de căutare, folosim aceeași abordare:

LEN(names)*(class=F5)

Și obțineți același rezultat:

(5;6;8;6;6;0;0;0;0;0)

După executarea LEN și MAX, avem o formulă MATCH cu aceste valori:

MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))

MATCH returnează apoi poziția 8 din listă, 3, care se alimentează în INDEX astfel:

=INDEX(names,3)

În cele din urmă, INDEX returnează cu atenție valoarea în poziția a 3-a a numelor , care este „Jonathan”.

Articole interesante...