Tartalomjegyzék
Ebben a bemutatóban azt fogjuk megvizsgálni, hogyan lehet az IFERROR és a VLOOKUP függvényeket együtt használni a különböző hibák csapdázására és kezelésére. Ezen kívül megtanulja, hogyan végezhet egymás utáni vlookupokat az Excelben több IFERROR függvény egymásba ágyazásával.
Excel VLOOKUP és IFERROR - ezt a két függvényt elég nehéz lehet külön-külön is megérteni, nemhogy akkor, amikor kombinálják őket. Ebben a cikkben talál néhány könnyen követhető példát, amelyek a gyakori felhasználási módokra vonatkoznak, és világosan szemléltetik a képletek logikáját.
Ha nincs sok tapasztalata az IFERROR és a VLOOKUP függvényekkel, akkor érdemes először az alapokat átismerni a fenti linkek segítségével.
IFERROR VLOOKUP formula az #N/A és egyéb hibák kezelésére
Ha az Excel Vlookup nem talál keresési értéket, akkor egy #N/A hibát dob, például a következőt:
Üzleti igényeitől függően a hibát saját szöveggel, nullával vagy üres cellával álcázhatja.
Példa 1. IFERROR VLOOKUP formulával a hibák saját szöveggel való helyettesítésére
Ha a szabványos hiba jelölést az egyéni szöveggel szeretné helyettesíteni, akkor a VLOOKUP képletet tekerje IFERROR-ba, és írjon be bármilyen szöveget a 2. argumentumba ( value_if_error ), például "Nem található":
IFERROR(VLOOKUP( ... ), "Nem található")Ha a keresési értéket a Fő táblázatban B2-ben, a keresési tartományt pedig a Keresési táblázatban A2:B4-ben adjuk meg, a képlet a következő alakot veszi fel:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")
Az alábbi képernyőkép az Excel IFERROR VLOOKUP képletét mutatja be működés közben:
Az eredmény sokkal érthetőbbnek és kevésbé ijesztőnek tűnik, nem igaz?
Hasonló módon használhatja az INDEX MATCH-t az IFERROR-ral együtt:
=IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")
Az IFERROR INDEX MATCH formula különösen akkor hasznos, ha a keresési oszloptól balra lévő oszlopból szeretne értékeket kinyerni (bal oldali keresés), és a saját szövegét adja vissza, ha nem talál semmit.
Példa 2. IFERROR VLOOKUP-pal, hogy üres vagy 0-t adjon vissza, ha nem talált semmit
Ha nem akarsz semmit sem mutatni, ha a keresési értéket nem találod, akkor az IFERROR jelenítsen meg egy üres karakterlánc (""):
IFERROR(VLOOKUP( ... ),"")Példánkban a képlet a következőképpen néz ki:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")
Amint láthatja, semmit sem ad vissza, ha a keresési érték nem szerepel a keresési listában.
Ha a hibát a következővel szeretné helyettesíteni nulla érték , az utolsó argumentumba 0-t írjon:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)
Vigyázat! Az Excel IFERROR függvénye mindenféle hibát elkap, nem csak az #N/A-t. Jó vagy rossz? Minden a céltól függ. Ha minden lehetséges hibát el akar fedni, akkor az IFERROR Vlookup a megfelelő megoldás. De sok helyzetben nem biztos, hogy ez egy bölcs technika.
Például, ha létrehoztál egy névvel ellátott tartományt a táblázatod adataihoz, és a Vlookup képletedben elírtad a nevet, az IFERROR elkapja a #NAME? hibát, és a "Nem találtuk" vagy bármely más, általad megadott szöveggel helyettesíti azt. Ennek eredményeként soha nem tudhatod meg, hogy a képleted rossz eredményt ad, hacsak nem veszed észre a helyesírási hibát. Ilyen esetben ésszerűbb lenne csak a #N/A hibákat elkapni.Ehhez használja az IFNA Vlookup képletet az Excel 2013 és újabb verziókban, az IF ISNA VLOOKUP-ot minden Excel-verzióban.
A lényeg: legyél nagyon óvatos, amikor a VLOOKUP képletedhez társat választasz :)
Fészek IFERROR a VLOOKUP-on belül, hogy mindig találjon valamit
Képzelje el a következő helyzetet: keres egy adott értéket egy listában, és nem találja. Milyen lehetőségei vannak? Vagy kap egy N/A hibát, vagy megjeleníti a saját üzenetét. Valójában van egy harmadik lehetőség is - ha az elsődleges vlookup botladozik, akkor keressen valami mást, ami biztosan ott van!
Ha továbbvisszük a példánkat, hozzunk létre valamilyen műszerfalat a felhasználóink számára, amely megmutatja nekik egy adott iroda mellékszámát. Valami ilyesmi:
Tehát, hogyan húzza ki a melléket a B oszlopból a D2-ben lévő irodaszám alapján? Ezzel a szokásos Vlookup formulával:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
És ez szépen fog működni, amíg a felhasználók érvényes számot adnak meg a D2-ben. De mi van akkor, ha egy felhasználó olyan számot ad meg, ami nem létezik? Ebben az esetben hagyjuk, hogy felhívják a központi irodát! Ehhez a fenti képletet ágyazzuk be a(z) érték érvét IFERROR, és tegyen egy másik Vlookup-ot a value_if_error érv.
A teljes formula egy kicsit hosszú, de tökéletesen működik:
=IFERROR(VLOOKUP("iroda"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("központi iroda",$A$2:$B$7,2,FALSE)))
Ha az irodai szám megvan, a felhasználó megkapja a megfelelő mellékszámot:
Ha az irodai szám nem található, a központi iroda mellékszáma jelenik meg:
Ahhoz, hogy a képletet egy kicsit tömörebbé tegye, más megközelítést is alkalmazhat:
Először is ellenőrizzük, hogy a D2-ben szereplő szám szerepel-e a kereső oszlopban (kérjük, vegye figyelembe, hogy a col_index_num 1-re, hogy a képlet megnézze és visszaadja az A oszlop értékét): VLOOKUP(D2,$A$2:$B$7,1,FALSE)
Ha a megadott irodaszámot nem találjuk, akkor a "központi iroda" karakterláncot keressük, amely biztosan szerepel a keresési listában. Ehhez az első VLOOKUP-ot IFERROR-ral csomagoljuk be, és ezt az egész kombinációt egy másik VLOOKUP függvénybe fészkeljük:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "központi iroda"),$A$2:$B$7,2)
Nos, egy kicsit más képlet, ugyanaz az eredmény:
De mi az oka annak, hogy a "központi irodát" keressük, kérdezheted. Miért nem adjuk meg a mellékszámot közvetlenül az IFERROR-ban? Mert a mellékszám a jövőben valamikor megváltozhat. Ha ez megtörténik, akkor csak egyszer kell frissítened az adatokat a forrás táblában, anélkül, hogy minden egyes VLOOKUP képlet frissítésével kellene foglalkoznod.
Hogyan készítsünk szekvenciális VLOOKUP-okat az Excelben?
Azokban a helyzetekben, amikor az ún. szekvenciális vagy láncolt Vlookups az Excelben attól függően, hogy egy korábbi keresés sikeres vagy sikertelen volt-e, két vagy több IFERROR függvényt fészkeljen be a Vlookups egyesével történő futtatásához:
IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Nem található"))))A képlet a következő logika szerint működik:
Ha az első VLOOKUP nem talál semmit, az első IFERROR hibát jelez, és újabb VLOOKUP-ot futtat. Ha a második VLOOKUP nem sikerül, a második IFERROR hibát jelez, és lefuttatja a harmadik VLOOKUP-ot, és így tovább. Ha az összes VLOOKUP megbicsaklik, az utolsó IFERROR visszaadja az üzenetét.
Ez a beágyazott IFERROR formula különösen akkor hasznos, ha Vlookup-ot kell végeznie az alábbi területeken. több lap ahogy az alábbi példában látható.
Tegyük fel, hogy három homogén adatlistával rendelkezik három különböző munkalapon (ebben a példában irodai számok), és egy bizonyos számhoz szeretne egy kiterjesztést kapni.
Feltételezve, hogy a keresési érték az aktuális lap A2 cellájában van, és a keresési tartomány A2:B5 3 különböző munkalapon (északi, déli és nyugati), a következő képlet remekül működik:
=IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE), "Not found"))))
Tehát a "láncolt Vlookups" képletünk három különböző lapon keres a képletbe ágyazott sorrendben, és az első találatot hozza:
Így használja az IFERROR-t a VLOOKUP-pal az Excelben. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogon!
Elérhető letöltések
Excel IFERROR VLOOKUP képlet példák