Spis treści
W tym tutorialu przyjrzymy się, jak używać ISERROR z VLOOKUP w Excelu, aby produktywnie obsługiwać wszystkie rodzaje błędów.
VLOOKUP jest jedną z najbardziej zagmatwanych funkcji Excela, nękaną przez wiele problemów. Niezależnie od tego, w której tabeli szukasz, błędy #N/A są częstym widokiem, a #NAME i #VALUE również pojawiają się od czasu do czasu. Używanie VLOOKUP z ISERROR może pomóc Ci wyłapać wszystkie możliwe błędy i obsłużyć je w sposób najbardziej odpowiedni dla Twojej sytuacji.
Dlaczego VLOOKUP daje błąd?
Najczęstszym błędem w formułach VLOOKUP jest. #N/A występujący w przypadku, gdy wartość lookup nie zostanie znaleziona. Może się to zdarzyć z różnych powodów:
- Wartość lookup nie istnieje w tablicy lookup.
- Wartość lookup jest źle napisana.
- W wartości lookup lub kolumnie lookup występują spacje wiodące lub ciągnące się.
- Kolumna lookup nie jest najbardziej lewą kolumną tablicy.
Poza tym, możesz natknąć się na #VALUE! błąd, np. gdy wartość lookup zawiera więcej niż 255 znaków. W przypadku, gdy w nazwie funkcji wystąpi błąd ortograficzny, zostanie wyświetlony komunikat #NAZWA? pojawi się błąd.
Aby uzyskać pełne odniesienie, zobacz nasz wcześniejszy post na temat Dlaczego Excel VLOOKUP nie działa.
IF ISERROR VLOOKUP formuła do zastąpienia błędów z niestandardowym tekstem
Aby zamaskować wszystkie możliwe błędy, które może wywołać VLOOKUP, można umieścić go wewnątrz formuły IF ISERROR w taki sposób:
IF(ISERROR(VLOOKUP(...)), " text_if_error ", VLOOKUP(...))Jako przykład wyciągnijmy nazwy przedmiotów, z których studenci grupy A oblali testy:
=VLOOKUP(A3, $D$3:$E$9, 2, FALSE)
W rezultacie otrzymujesz garść błędów #N/A, co może stworzyć wrażenie, że formuła jest uszkodzona.
W rzeczywistości błędy te wskazują jedynie, że niektóre wartości lookup (A3:A14) nie znajdują się na liście lookup (D3:D9). Aby jasno przekazać tę myśl, zagnieżdż swoją formułę VLOOKUP w konstrukcji IF ISERROR:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "No", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
To złapie błędy i zwróci twoją niestandardową wiadomość tekstową:
Wskazówki i uwagi:
- Główną zaletą tej formuły jest to, że ładnie sprawdza się w wszystkie wersje programu Excel 2000 poprzez Excel 365. W nowoczesnych wersjach dostępne są prostsze i bardziej kompaktowe alternatywy.
- Funkcja ISERROR wychwytuje absolutnie wszystkie błędy , takich jak #N/A, #NAME, #VALUE itp. W przypadku gdy chcesz wyświetlić niestandardowy komunikat tylko wtedy, gdy wartość lookupu nie zostanie znaleziona (błąd #N/A), użyj funkcji JEŻELI ISNA VLOOKUP (we wszystkich wersjach) lub JEŻELI VLOOKUP (w programie Excel 2013 i nowszych).
ISERROR VLOOKUP, aby zwrócić pustą komórkę w przypadku błędu
Aby mieć pustą komórkę, gdy wystąpi błąd, uzyskaj swoją formułę, aby zwrócić pusty ciąg ("") zamiast niestandardowego tekstu:
IF(ISERROR(VLOOKUP(...)), "", VLOOKUP(...))W naszym przypadku wzór przyjmuje taką postać:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Wynik jest dokładnie taki, jak oczekiwano - pusta komórka, jeśli nazwisko ucznia nie zostanie znalezione w tabeli lookup.
Wskazówka. W podobny sposób można zastąpić błędy VLOOKUP zerami, kreskami lub dowolnymi innymi znakami. Wystarczy użyć żądanego znaku w miejsce pustego ciągu.
IF ISERROR VLOOKUP Tak/Nie wzór
W niektórych sytuacjach możesz szukać czegoś, ale zamiast wyciągać zapałki chcesz po prostu zwrócić Tak (lub jakiś inny tekst, jeśli znaleziono wartość lookup) oraz Nie (jeśli wartość lookup nie zostanie znaleziona). Aby mieć to zrobione, możesz użyć tej ogólnej formuły:
IF(ISERROR(VLOOKUP(...)), " text_if_not_found ", " text_if_found ")W naszym przykładowym zestawie danych, załóżmy, że chcesz wiedzieć, którzy studenci nie zdali testu, a którzy nie. Aby to osiągnąć, podaj znaną już formułę ISERROR VLOOKUP do testu logicznego IF i powiedz jej, aby wyprowadziła "Nie", jeśli wartość nie zostanie znaleziona (ISERROR VLOOKUP zwraca TRUE), "Tak", jeśli zostanie znaleziona (ISERROR VLOOKUP zwraca FALSE):
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "No", "Yes")
Alternatywy ISERROR VLOOKUP
Kombinacja IF ISERROR jest najstarszą, sprawdzoną w czasie techniką do Vlookup bez błędów w Excelu. Z czasem nowe funkcje ewoluowały, dostarczając łatwiejszych sposobów na wykonanie tego samego zadania. Poniżej omówimy inne możliwe rozwiązania i kiedy każde z nich najlepiej zastosować.
IFERROR VLOOKUP
Dostępne w programie Excel 2007 i nowszych
Począwszy od wersji 2007, Excel posiada specjalną funkcję o nazwie IFERROR, która pozwala sprawdzić formułę pod kątem błędów i zwrócić własny tekst (lub uruchomić alternatywną formułę) w przypadku wykrycia jakiegokolwiek błędu.
IFERROR(VLOOKUP(...), " text_if_error ")Realna formuła wygląda następująco:
=IFERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "No")
Na pierwszy rzut oka wygląda to jak krótszy analog formuły IF ISERROR VLOOKUP. Istnieje jednak zasadnicza różnica:
- IFERROR VLOOKUP zakłada, że zawsze chcesz wynik VLOOKUP, jeśli nie jest to błąd.
- IF ISERROR VLOOKUP pozwala określić, co ma zostać zwrócone w przypadku błędu, a co w przypadku braku błędu.
Więcej szczegółów znajdziesz w rozdziale Używanie IFERROR z VLOOKUP w Excelu.
JEŻELI JEST TO VLOOKUP
Działa w programie Excel 2000 i nowszych
W sytuacji, gdy chcemy złapać tylko #N/A bez wyłapywania innych błędów, z pomocą przychodzi funkcja ISNA. Składnia jest taka sama jak w przypadku IF ISERROR VLOOKUP:
IF(ISNA(VLOOKUP(...)), " text_if_error ", VLOOKUP(...))Ale w pewnych okolicznościach ta pozornie identyczna formuła może przynieść różne rezultaty:
=IF(ISNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "No", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Na poniższym obrazku komórka A13 zawiera mnóstwo spacji, z powodu których całkowita długość wartości lookup przekracza 255 znaków. W efekcie formuła wywołuje błąd #VALUE!, zwracając uwagę na tę komórkę i zachęcając do zbadania przyczyn. ISERROR VLOOKUP zwróciłby w tym przypadku "No", co tylko zaciemniłoby sprawę i dostarczyło absolutnie błędny wynik.
Kiedy stosować:
Formuła ta pięknie sprawdza się w sytuacji, gdy chcemy wyświetlić jakiś tekst tylko wtedy, gdy nie zostanie znaleziona wartość lookup, a nie chcemy maskować podstawowych problemów z samą formułą VLOOKUP, np. gdy nazwa funkcji jest błędnie wpisana (#NAME?) lub nie jest podana pełna ścieżka do skoroszytu lookup (#VALUE!).
Więcej informacji znajdziesz w artykule Funkcja ISNA w Excelu z przykładami formuł.
IFNA VLOOKUP
Dostępne w programie Excel 2013 i nowszych
Jest to nowoczesny zamiennik kombinacji IF ISNA, który pozwala w łatwiejszy sposób obsługiwać błędy #N/A.
IFNA(VLOOKUP(...), " text_if_error ")Oto skrócony odpowiednik naszej formuły IF ISNA VLOOKUP:
=IFNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "No")
Kiedy stosować:
To idealne rozwiązanie do wychwytywania i obsługi błędów #N/A w nowoczesnych wersjach Excela (2013 - 365).
Pełne informacje na ten temat można znaleźć w funkcji Excel IFNA.
XLOOKUP
Obsługiwane w programach Excel 2021 i Excel 365
Ze względu na wbudowaną funkcjonalność "jeśli błąd", funkcja XLOOKUP jest najprostszym sposobem na wyszukiwanie bez błędów #N/A w programie Excel. Po prostu wpisz swój przyjazny dla użytkownika tekst w opcjonalnym czwartym argumencie o nazwie jeśli_nie_znaleziono .
Na przykład:
=XLOOKUP(A3, $D$3:$D$9, $E$3:$E$9, "Nie")
Ograniczenie: łapie tylko błędy #N/A, ignorując inne typy.
Aby uzyskać więcej informacji, sprawdź funkcję XLOOKUP w programie Excel.
Jak widzisz, Excel dostarcza całkiem sporo różnych opcji, aby uzyskać rig do błędów VLOOKUP. Mam nadzieję, że ten tutorial rzucił trochę światła na to, jak skutecznie z nich korzystać. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu w przyszłym tygodniu!
Dostępne pliki do pobrania
ISERROR z przykładami VLOOKUP (plik .xlsx)