Excel képlet: Keresse meg a leghosszabb karakterláncot a -

Általános képlet

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

Összegzés

A tartomány leghosszabb karakterláncának megkereséséhez az INDEX, MATCH, LEN és MAX alapú tömbképletet használhatja. A bemutatott példában az F6 képlete a következő:

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

Ahol a "nevek" a C5: C14 elnevezett tartomány, az "osztály" pedig a B5: B14 nevű tartomány.

Megjegyzés: ez egy tömbképlet, amelyet a control + shift + enter billentyűkombinációval kell megadni.

Magyarázat

Ennek a képletnek a lényege a MATCH függvény, amely a mellékelt kritériumok alapján keresi meg a leghosszabb karakterlánc helyzetét:

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

Megjegyzés A MATCH úgy van beállítva, hogy pontos egyezést hajtson végre azzal, hogy nulla értéket ad meg az egyezési típushoz. A keresési értékhez:

LEN(names)*(class=F5)

A LEN függvény egy tömb eredményt (hosszúságot) ad vissza, egyet a lista minden egyes nevéhez, ahol class = "A" az F5 cellából:

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

Ez hatékonyan kiszűri az összes B osztályt, és a MAX függvény ekkor adja vissza a legnagyobb értéket, 8-at.

A keresési tömb összeállításához ugyanazt a megközelítést alkalmazzuk:

LEN(names)*(class=F5)

És ugyanazt az eredményt kapja:

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

A LEN és a MAX futtatása után van egy MATCH képletünk az alábbi értékekkel:

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

A MATCH ekkor visszaadja a 8-as pozíciót a listában, 3, amely így táplálkozik az INDEX-be:

=INDEX(names,3)

Végül az INDEX kötelességtudóan visszaadja az értéket a nevek 3. pozíciójában , amely "Jonathan".

érdekes cikkek...