Excel IFERROR & VLOOKUP - pułapka #N/A i inne błędy

  • Udostępnij To
Michael Brown

W tym poradniku, będziemy patrzeć na to, jak używać IFERROR i VLOOKUP funkcje razem do pułapki i obsługi różnych błędów. Ponadto, dowiesz się, jak zrobić sekwencyjne vlookups w programie Excel przez zagnieżdżanie wielu funkcji IFERROR jeden na drugim.

Excel VLOOKUP i IFERROR - te dwie funkcje mogą być dość trudne do zrozumienia osobno, a co dopiero, gdy są połączone. W tym artykule znajdziesz kilka łatwych do wykonania przykładów, które dotyczą typowych zastosowań i jasno ilustrują logikę formuł.

Jeśli nie masz zbyt dużego doświadczenia z funkcjami IFERROR i VLOOKUP, może być dobrym pomysłem, aby najpierw zrewidować ich podstawy, podążając za powyższymi linkami.

    IFERROR VLOOKUP formuła do obsługi #N/A i innych błędów

    Kiedy Excel Vlookup nie znajdzie wartości lookup, rzuca błąd #N/A, jak ten:

    W zależności od potrzeb biznesowych możesz chcieć zamaskować błąd własnym tekstem, zerem lub pustą komórką.

    Przykład 1. IFERROR z formułą VLOOKUP do zastąpienia błędów własnym tekstem

    Jeśli chcesz zastąpić standardową notację błędu swoim własnym tekstem, zawiń formułę VLOOKUP w IFERROR i wpisz dowolny tekst w drugim argumencie ( wartość_jeśli_błąd ), na przykład "Nie znaleziono":

    IFERROR(VLOOKUP( ... ), "Nie znaleziono")

    Przy wartości lookup w B2 w tabeli Main i zakresie A2:B4 w tabeli Lookup formuła przyjmuje następujący kształt:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")

    Poniższy zrzut ekranu pokazuje naszą formułę Excel IFERROR VLOOKUP w akcji:

    Wynik wygląda o wiele bardziej zrozumiale i o wiele mniej onieśmielająco, prawda?

    W podobny sposób można użyć INDEX MATCH wraz z IFERROR:

    =IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")

    Formuła IFERROR INDEX MATCH jest szczególnie przydatna, gdy chcemy wyciągnąć wartości z kolumny leżącej na lewo od kolumny lookup (left lookup) i zwrócić własny tekst, gdy nic nie zostanie znalezione.

    Przykład 2. IFERROR z VLOOKUP, aby zwrócić puste miejsce lub 0, jeśli nic nie znaleziono

    Jeśli nie chcesz nic pokazywać, gdy wartość lookup nie zostanie znaleziona, niech IFERROR wyświetli komunikat pusty ciąg (""):

    IFERROR(VLOOKUP( ... ),"")

    W naszym przykładzie formuła przebiega następująco:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")

    Jak widać, nie zwraca nic, gdy wartość lookup nie znajduje się na liście wyszukiwania.

    Jeśli chciałbyś zastąpić błąd z wartość zerowa , w ostatnim argumencie umieść 0:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)

    Słowo ostrzeżenia! Funkcja IFERROR Excela wyłapuje wszystkie rodzaje błędów, nie tylko #N/A. Czy jest to dobre czy złe? Wszystko zależy od celu. Jeśli chcesz zamaskować wszystkie możliwe błędy, IFERROR Vlookup jest drogą do zrobienia. Ale w wielu sytuacjach może to być nierozsądna technika.

    Na przykład, jeśli utworzyłeś nazwany zakres dla danych tabeli i błędnie wpisałeś tę nazwę w formule Vlookup, IFERROR złapie błąd #NAME? i zastąpi go "Not found" lub innym tekstem, który podasz. W rezultacie, możesz nigdy nie wiedzieć, że twoja formuła dostarcza błędnych wyników, chyba że sam zauważysz literówkę. W takim przypadku, bardziej rozsądnym podejściem byłoby przechwytywanie tylko błędów #N/A.W tym celu należy użyć formuły IFNA Vlookup w Excelu 2013 i wyższych, IF ISNA VLOOKUP we wszystkich wersjach Excela.

    Wniosek jest taki: bądź bardzo ostrożny przy wyborze towarzysza dla swojej formuły VLOOKUP :)

    Gniazdo IFERROR w VLOOKUP, aby zawsze coś znaleźć

    Wyobraź sobie następującą sytuację: szukasz konkretnej wartości na liście i nie znajdujesz jej. Jakie masz wyjście? Albo dostać błąd N/A, albo pokazać własny komunikat. Właściwie jest trzecia opcja - jeśli twój podstawowy vlookup się potknie, to poszukaj czegoś innego, co na pewno tam jest!

    Biorąc nasz przykład dalej, stwórzmy jakiś dashboard dla naszych użytkowników, który pokaże im numer wewnętrzny konkretnego biura. Coś w tym stylu:

    Jak więc wyciągnąć rozszerzenie z kolumny B na podstawie numeru biura w D2? Za pomocą tej zwykłej formuły Vlookup:

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    I będzie to działało ładnie tak długo, jak długo użytkownicy będą wpisywać prawidłowy numer w D2. Ale co jeśli użytkownik wpisze jakiś numer, który nie istnieje? W tym przypadku niech zadzwoni do centrali! W tym celu umieszczasz powyższą formułę w wartość argument IFERROR, i umieść kolejny Vlookup w wartość_jeśli_błąd argument.

    Pełna formuła jest trochę długa, ale działa doskonale:

    =IFERROR(VLOOKUP("biuro"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("centrala",$A$2:$B$7,2,FALSE))

    Jeśli numer biura zostanie znaleziony, użytkownik otrzymuje odpowiadający mu numer wewnętrzny:

    Jeśli numer biura nie zostanie znaleziony, wyświetlany jest numer wewnętrzny centrali:

    Aby formuła była nieco bardziej zwarta, możesz zastosować inne podejście:

    Najpierw sprawdź, czy liczba w D2 jest obecna w kolumnie lookup (zauważ, że ustawiliśmy col_index_num do 1, aby formuła wyszukała i zwróciła wartość z kolumny A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Jeśli podany numer biura nie zostanie znaleziony, to szukamy ciągu "centrala", który na pewno znajduje się na liście lookup. W tym celu zawijamy pierwszy VLOOKUP w IFERROR i całą tę kombinację zagnieżdżamy wewnątrz kolejnej funkcji VLOOKUP:

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "centrala"),$A$2:$B$7,2)

    No cóż, nieco inna formuła, ten sam efekt:

    Ale jaki jest powód, aby szukać "biura centralnego", możesz mnie zapytać. Dlaczego nie dostarczyć numeru wewnętrznego bezpośrednio w IFERROR? Ponieważ rozszerzenie może się zmienić w pewnym momencie w przyszłości. Jeśli tak się stanie, będziesz musiał zaktualizować swoje dane tylko raz w tabeli źródłowej, nie martwiąc się o aktualizację każdej z twoich formuł VLOOKUP.

    Jak wykonać sekwencyjne VLOOKUPy w programie Excel

    W sytuacjach, gdy trzeba wykonać tzw. sekwencyjny lub przykuty Vlookups w Excelu w zależności od tego, czy wcześniejszy lookup powiódł się czy nie, zagnieżdż dwie lub więcej funkcji IFERROR, aby uruchomić swoje Vlookups jeden po drugim:

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Nie znaleziono"))

    Formuła działa z następującą logiką:

    Jeśli pierwszy VLOOKUP niczego nie znajdzie, pierwszy IFERROR wyłapuje błąd i uruchamia kolejny VLOOKUP. Jeśli drugi VLOOKUP zawiedzie, drugi IFERROR wyłapuje błąd i uruchamia trzeci VLOOKUP, i tak dalej. Jeśli wszystkie VLOOKUPy się potkną, ostatni IFERROR zwraca twoją wiadomość.

    Ta zagnieżdżona formuła IFERROR jest szczególnie przydatna, gdy musisz Vlookup przez wiele arkuszy jak pokazano w poniższym przykładzie.

    Powiedzmy, że masz trzy listy jednorodnych danych w trzech różnych arkuszach (numery urzędów w tym przykładzie) i chcesz uzyskać rozszerzenie dla pewnego numeru.

    Zakładając, że wartość lookup znajduje się w komórce A2 w bieżącym arkuszu, a zakres lookupu to A2:B5 w 3 różnych arkuszach (północnym, południowym i zachodnim), poniższa formuła działa jak należy:

    =IFERROR(VLOOKUP(A2,Północ!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,Południe!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,Zachód!$A$2:$B$5,2,FALSE), "Nie znaleziono"))

    Tak więc nasza formuła "chained Vlookups" wyszukuje w trzech różnych arkuszach w kolejności, w jakiej zagnieździliśmy je w formule, i przynosi pierwsze dopasowanie, które znajdzie:

    Tak wygląda użycie IFERROR z VLOOKUP w Excelu. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Dostępne pliki do pobrania

    Excel IFERROR VLOOKUP przykłady formuły

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.