
Általános képlet
=LOOKUP(2,1/(A:A""),A:A)
Összegzés
A sor vagy oszlop utolsó nem üres cellájának értékének megtalálásához használhatja a LOOKUP funkciót ebben a meglepően kompakt képletben. További bónuszként ez a képlet nem tömbképlet, és nem volatilis.
Magyarázat
A képlet megértésének kulcsa annak felismerése, hogy a 2 keresési_értéke szándékosan nagyobb, mint bármelyik érték, amely megjelenik a keresési_vektorban.
- Az A: A "" kifejezés igaz és hamis értékek tömbjét adja vissza: (IGAZ, HAMIS, IGAZ,…).
- Az 1-es számot elosztjuk ezzel a tömbnel, és létrehoz egy új tömböt, amely akár 1-ből áll, akár nulla hibával (# DIV / 0!) Osztva: (1,0,1,…). Ez a tömb a keresési_vektor.
- Ha a keresési_érték nem található, a LOOKUP megegyezik a következő legkisebb értékkel.
- Ebben az esetben a keresési_érték 2, de a keresési_arra legnagyobb értéke 1, tehát a keresés megegyezik a tömb utolsó 1-jével.
- A LOOKUP a result_vector megfelelő értékét adja vissza (azaz az azonos pozícióban lévő értéket).
A hibák kezelése
Ha vannak hibák a lookup_vector-ban, különösen, ha hiba van az utolsó nem üres cellában, akkor ezt a képletet módosítani kell. Erre a kiigazításra azért van szükség, mert a "" feltételek önmagában hibát adnak vissza, ha egy cella hibát tartalmaz. A probléma kiküszöböléséhez használja az ISBLANK-ot a NOT-nel:
=LOOKUP(2,1/(NOT(ISBLANK(A:A))),A:A)
Utolsó numerikus érték
Az utolsó numerikus érték megszerzéséhez hozzáadhatja az ISNUMBER függvényt a következőképpen:
=LOOKUP(2,1/(ISNUMBER(A1:A100)),A1:A100)
Az utolsó érték helyzete
Ha meg szeretné kapni az utolsó érték pozícióját (ebben az esetben a sorszámot), akkor kipróbálhat egy ilyen képletet:
=LOOKUP(2,1/(A:A""),ROW(A:A))
Itt megadjuk az azonos tartomány sorszámait az eredményvektor megkeresésében, és visszakapjuk az utolsó mérkőzés sorszámát.