Excel vzorec: Nájdite najdlhší reťazec s kritériami -

Obsah

Všeobecný vzorec

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

Zhrnutie

Ak chcete nájsť najdlhší reťazec v rozsahu s kritériami, môžete použiť maticový vzorec založený na indexoch INDEX, MATCH, LEN a MAX. V zobrazenom príklade je vzorec v F6:

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

Kde „názvy“ sú pomenovaný rozsah C5: C14 a „trieda“ je pomenovaný rozsah B5: B14.

Poznámka: toto je vzorec poľa a musí sa zadávať pomocou klávesov Control + Shift + Enter.

Vysvetlenie

Jadrom tohto vzorca je funkcia MATCH, ktorá pomocou zadaných kritérií vyhľadá pozíciu najdlhšieho reťazca:

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

Poznámka MATCH je nastavený na vykonávanie presnej zhody zadaním nuly pre typ zhody. Ako vyhľadávaciu hodnotu máme:

LEN(names)*(class=F5)

Funkcia LEN vráti pole výsledkov (dĺžok), jeden pre každý názov v zozname, kde class = "A" z bunky F5:

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

Takto sa efektívne odfiltruje celá trieda B a funkcia MAX potom vráti najväčšiu hodnotu 8.

Na zostrojenie vyhľadávacieho poľa používame rovnaký prístup:

LEN(names)*(class=F5)

A získate rovnaký výsledok:

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

Po spustení LEN a MAX máme MATCH vzorec s týmito hodnotami:

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

MATCH potom vráti pozíciu 8 v zozname, 3, ktorý sa napája na INDEX takto:

=INDEX(names,3)

Nakoniec INDEX poslušne vráti hodnotu na 3. pozícii mien , čo je „Jonathan“.

Zaujímavé články...