Ako skontrolovať výskyt údajov funkciou VLOOKUP
Príklad 2
Máme za úlohu skontrolovať a vyhodnotiť, či sú predané tovary ešte k dispozícii v sklade, alebo sú vypredané. Zdrojové údaje o vypredaných produktoch sú uvedené v prvom prípade v rozsahu údajov (rú) a v druhom prípade v Tabuľke Excel (et).
Existuje viacero riešení tejto úlohy. Použijeme kombináciu funkcií IF a VLOOKUP.
Vzorec zapísaný do bunky C3 v našom riešení príkladu by mohol vyzerať takto:
=IF((VLOOKUP(B3; $E$3:$E$6; 1; FALSE))=B3;“vypredané“;“áno“)
Funkcia VLOOKUP vyhľadáva obsah bunky B3 (ananás) v rozsahu údajov E3:E6. Vyhľadáva presne (argument FALSE). Keď nájde, vráti hodnotu „ananás“. To znamená, že ananás je vypredaný a pomocou funkcie IF vo vzorci hore môžeme zobraziť odpoveď „vypredané“.
Lenže toto riešenie má háčik – ak sa údaj v tabuľke vypredaných nenachádza, čo je práve prípad nášho ananásu, VLOOKUP vráti chybové hlásenie #NEDOSTUPNÝ (v anglickej verzii #N/A).
Preto funkciou ISERROR (alebo ISNA) zabezpečíme výstup funkcie VLOOKUP v podobe TRUE/FALSE.
Upravený vzorec bude potom vyzerať takto:
=IF(ISERROR(VLOOKUP(B3; $E$3:$E$6; 1; FALSE));“áno“;“vypredané“)
Keď VLOOKUP textový údaj „ananás“ v tabuľke predaných produktov nájde, vráti hodnotu „ananás“, ISERROR následne vráti na výstupe TRUE (teda ananás je vypredaný), inak vypíše FALSE (ananás je na sklade). S tým už môžeme ďalej rozhodovať funkciou IF o spôsobe výpisu. Funkcia IF premení výstup TRUE na výpis v bunke „vypredaný“, výstup FALSE na výpis „áno“ (je na sklade).
Pri použití zdrojových údajov o predanom ovocí v tabuľke Excel, ktorú sme pomenovali „Predané“, bude zápis vyzerať takto:
=IF(ISERROR(VLOOKUP(B3; Predané; 1; FALSE));“áno“;“vypredané“)
Výsledok sa objaví tak ako vidno na obrázkoch.
Ako iné riešenie môžeme použiť kombináciu funkcií IF, ISNA a VLOOKUP. Tiež je možné použiť napr. IF, IFERROR a VLOOKUP, za zmienku stojí i použitie funkcie VLOOKUP v kombinácii s novšou funkciou SWITCH (a ISNA) – kompletné vzorce nájdete v zošite na stiahnutie.
Aký bude vo funkčnosti rozdiel, ak namiesto funkcie ISERROR použijeme funkciu ISNA?
Obe funkcie ISERROR aj ISNA slúžia na detekciu chýb v Exceli, ale líšia sa v rozsahu chýb, ktoré dokážu zachytiť.
ISERROR zachytáva všetky typy chýb v Exceli, to znamená, že vracia TRUE pri ktorejkoľvek z uvedených chýb:
- #NEDOSTUPNÝ (#N/A),
- #HODNOTA! (#VALUE!),
- #ODKAZ! (#REF!),
- #DELENIE_NULOU! (#DIV/0!),
- #ČÍSLO! (#NUM!),
- #NÁZOV? (#NAME?),
- #NULA! (#NULL!).
Je to všeobecnejšia funkcia na kontrolu chýb.
ISNA reaguje výhradne na chybu #NEDOSTUPNÝ (#N/A – Not Available). Vracia TRUE iba pri chybe #NEDOSTUPNÝ (#N/A), pri všetkých ostatných chybách vracia FALSE. Je špecializovaná na situácie, keď hodnota nie je k dispozícii (napríklad pri našom nedostupnom výsledku hľadania VLOOKUP bude fungovať).
Ak sa produkt nenájde, funkcia ISERROR(…) vráti TRUE, funkcia ISNA(…) vráti TRUE – tu sa vo výsledku zhodujú.
V prípade, že nastane iná chyba (napr. #ODKAZ! kvôli nesprávnemu rozsahu), ISERROR(…) vráti TRUE, teda chybu indikuje, avšak ISNA(…) vráti FALSE – akoby to chyba nebola…