
Splošna formula
(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))
Povzetek
Če želite najti najdaljši niz v obsegu z merili, lahko uporabite matrično formulo, ki temelji na INDEX, MATCH, LEN in MAX. V prikazanem primeru je formula v F6:
(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))
Kjer je "names" imenovani obseg C5: C14, "class" pa imenovani obseg B5: B14.
Opomba: to je matrična formula, ki jo je treba vnesti s tipko control + shift + enter.
Pojasnilo
Jedro te formule je funkcija MATCH, ki locira položaj najdaljšega niza z uporabo priloženih meril:
MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)
Opomba MATCH je nastavljen za natančno ujemanje z podajanjem ničle za vrsto ujemanja. Za vrednost iskanja imamo:
LEN(names)*(class=F5)
Funkcija LEN vrne niz rezultatov (dolžin), po enega za vsako ime na seznamu, kjer je razred = "A" iz celice F5:
(5;6;8;6;6;0;0;0;0;0)
To učinkovito filtrira ves razred B, funkcija MAX pa nato vrne največjo vrednost, 8.
Za izdelavo iskalne matrike uporabimo enak pristop:
LEN(names)*(class=F5)
In dobite enak rezultat:
(5;6;8;6;6;0;0;0;0;0)
Po zagonu LEN in MAX imamo formulo MATCH s temi vrednostmi:
MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))
Nato MATCH vrne položaj 8 na seznamu, 3, ki se v INDEX poda takole:
=INDEX(names,3)
Na koncu INDEX vestno vrne vrednost na 3. mestu imen , to je "Jonathan".