
Üldine valem
(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))
Kokkuvõte
Kriteeriumivahemiku pikima stringi leidmiseks võite kasutada massiivivalemit, mis põhineb INDEX, MATCH, LEN ja MAX. Näidatud näites on valem F6-s järgmine:
(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))
Kus "nimed" on nimega vahemik C5: C14 ja "klass" on nimega vahemik B5: B14.
Märkus: see on massiivi valem ja see tuleb sisestada juhtklahviga + shift + enter.
Selgitus
Selle valemi tuumaks on funktsioon MATCH, mis määrab tarnitud kriteeriumide abil pikima stringi positsiooni:
MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)
Märkus. MATCH on seadistatud täpse vaste sooritamiseks, sisestades vaste tüübi jaoks nulli. Otsingu väärtuse jaoks on meil:
LEN(names)*(class=F5)
Funktsioon LEN tagastab tulemuste massiivi (pikkused), ühe loendi iga nime jaoks, kus lahtris F5 on klass = "A":
(5;6;8;6;6;0;0;0;0;0)
See filtreerib kogu B-klassi tõhusalt välja ja funktsioon MAX tagastab seejärel suurima väärtuse 8.
Otsingumassiivi koostamiseks kasutame sama lähenemist:
LEN(names)*(class=F5)
Ja saate sama tulemuse:
(5;6;8;6;6;0;0;0;0;0)
Pärast LEN- ja MAX-jooksu on meil valem MATCH nende väärtustega:
MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))
Seejärel tagastab MATCH loendis positsiooni 8, mis sisestatakse INDEX-i järgmiselt:
=INDEX(names,3)
Lõpuks tagastab INDEX kohusetundlikult väärtuse nimede 3. positsioonil , milleks on "Jonathan".