Exceli valem: leidke pikim string kriteeriumidega -

Ü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".

Huvitavad Artiklid...