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