
Generička formula
(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))
Sažetak
Da biste pronašli najduži niz u rasponu s kriterijima, možete upotrijebiti formulu niza koja se temelji na INDEX, MATCH, LEN i MAX. U prikazanom primjeru formula u F6 je:
(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))
Gdje je "imena" imenovani raspon C5: C14, a "klasa" imenovani raspon B5: B14.
Napomena: ovo je formula niza i mora se unijeti sa control + shift + enter.
Obrazloženje
Jezgra ove formule je funkcija MATCH, koja locira položaj najduljeg niza koristeći isporučene kriterije:
MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)
Napomena MATCH je postavljen za izvođenje točnog podudaranja davanjem nule za vrstu podudaranja. Za vrijednost pretraživanja imamo:
LEN(names)*(class=F5)
Funkcija LEN vraća niz rezultata (duljina), po jedan za svako ime na popisu gdje class = "A" iz ćelije F5:
(5;6;8;6;6;0;0;0;0;0)
To učinkovito filtrira sve razrede B, a funkcija MAX tada vraća najveću vrijednost, 8.
Za konstrukciju niza pretraživanja koristimo isti pristup:
LEN(names)*(class=F5)
I dobiti isti rezultat:
(5;6;8;6;6;0;0;0;0;0)
Nakon pokretanja LEN i MAX, imamo formulu MATCH sa sljedećim vrijednostima:
MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))
MATCH zatim vraća položaj 8 na popisu 3, koji se u INDEX uvlači ovako:
=INDEX(names,3)
Napokon, INDEX vrijedno vraća vrijednost na 3. mjestu imena , a to je "Jonathan".