Funkcja ISERROR w Excelu z przykładami formuł

  • Udostępnij To
Michael Brown

Samouczek analizuje praktyczne zastosowania funkcji ISERROR w Excelu i pokazuje, jak testować różne formuły pod kątem błędów.

Kiedy piszesz formułę, której Excel nie rozumie lub nie może obliczyć, zwraca uwagę na problem, pokazując komunikat o błędzie. Funkcja ISERROR może pomóc w wychwytywaniu błędów i zapewnić alternatywę po znalezieniu błędu.

    Funkcja ISERROR w programie Excel

    Funkcja ISERROR programu Excel wyłapuje wszystkie rodzaje błędów, w tym #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! i #SPILL! Wynikiem jest wartość logiczna: TRUE, jeśli wykryto błąd, FALSE w przeciwnym razie.

    Funkcja jest dostępna we wszystkich wersjach Excela od 2000 do 2021 oraz w Excelu 365.

    Składnia funkcji ISERROR jest tak prosta jak:

    ISERROR(wartość)

    Gdzie wartość jest wartością komórki lub formuły, która ma być sprawdzona pod kątem błędów.

    Formuła ISERROR w programie Excel

    Aby utworzyć formułę ISERROR w jej najprostszej postaci, należy dostarczyć odwołanie do komórki, którą chcemy przetestować pod kątem błędów. Na przykład:

    =ISERROR(A2)

    W przypadku znalezienia jakiegokolwiek błędu otrzymasz TRUE. Jeśli w testowanej komórce nie ma błędu, otrzymasz FALSE:

    Formuła IF ISERROR w programie Excel

    Aby zwrócić niestandardowy komunikat lub wykonać inne obliczenie w przypadku wystąpienia błędu, należy użyć funkcji ISERROR wraz z funkcją IF. Ogólna formuła wygląda następująco:

    IF(ISERROR( formuła (...), text_or_calculation_if_error , formuła ())

    Przetłumaczone na język ludzki mówi: jeśli formuła główna spowoduje błąd, wyświetl podany tekst lub uruchom inne obliczenie, w przeciwnym razie zwróć normalny wynik formuły.

    Na poniższym obrazku dzielenie sumy przez ilość generuje kilka błędów w Cena kolumna:

    Aby zastąpić wszystkie różne kody błędów niestandardowym tekstem, możesz użyć następującej formuły IF ISERROR:

    =IF(ISERROR(A2/B2), "Unknown", A2/B2)

    W programie Excel 2007 i nowszych wersjach ten sam wynik można uzyskać za pomocą wbudowanej funkcji IFERROR:

    =IFERROR(A2/B2, "Unknown")

    Należy zauważyć, że formuła IFERROR działa nieco szybciej, ponieważ wykonuje obliczenia A2/B2 tylko raz. Natomiast IF ISERROR oblicza je dwukrotnie - najpierw, aby sprawdzić, czy generuje błąd, a następnie ponownie, jeśli test jest FALSE.

    IF ISERROR VLOOKUP formuła

    Użycie ISERROR z VLOOKUP jest w rzeczywistości szczególnym przypadkiem formuły IF ISERROR omówionej powyżej. Kiedy funkcja VLOOKUP nie może znaleźć wartości lookup lub nie powiedzie się z innego powodu, wyświetlasz niestandardowy komunikat tekstowy za pomocą tej składni:

    IF(ISERROR(VLOOKUP(...)), " niestandardowy_tekst ", VLOOKUP(...))

    Dla tego przykładu, przeciągnijmy czasy z tabeli lookup (D3:E10) do tabeli głównej (A3:B15). Jeśli wartość lookup (nazwisko uczestnika) nie istnieje w tabeli lookup, zwrócimy "Not qualified".

    =IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))

    Wskazówka. Jeśli chcesz wyświetlać tekst niestandardowy tylko wtedy, gdy nie znaleziono wartości lookup (błąd #N/A) ignorując inne błędy, to użyj formuły IFNA VLOOKUP w Excelu 2013 i nowszych lub IF ISNA VLOOKUP w starszych wersjach.

    IF ISERROR INDEX MATCH wzór

    Wykonując lookup za pomocą kombinacji INDEX MATCH (lub formuły INDEX XMATCH w Excelu 365), można wyłapać i obsłużyć ewentualne błędy, stosując tę samą technikę - funkcja ISERROR sprawdza, czy nie występują błędy, a IF wyświetla określony tekst, gdy wystąpi jakikolwiek błąd.

    IF(ISERROR(INDEX ( kolumna , MATCH ( lookup_value , lookup_kolumny , 0)))), " niestandardowy_tekst ", INDEX (. kolumna , MATCH ( lookup_value , lookup_kolumny , 0)))

    Załóżmy, że tabela lookup ma czasy w pierwszej kolumnie. Ponieważ VLOOKUP nie jest w stanie spojrzeć w lewo, używamy formuły INDEX MATCH, aby wyciągnąć czasy z kolumny D:

    =INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))

    A następnie zagnieżdżasz go w wyżej wymienionej formule generycznej, aby zastąpić złapane błędy dowolnym tekstem, który chcesz:

    =IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))

    Uwaga. Podobnie jak w przypadku formuły IF ISERROR VLOOKUP, bardziej sensowne jest wyłapywanie tylko błędów #N/A i nie maskowanie potencjalnych problemów z samą formułą. W tym celu zawiń swoją formułę INDEX MATH w IFNA w Excelu 2013 i wyższych lub IF ISNA we wcześniejszych wersjach.

    IF ISERROR Formuła Tak/Nie

    We wszystkich poprzednich przykładach IF ISERROR zwracał wynik formuły głównej, jeśli nie jest to błąd. Jednak może on również działać w inny sposób - zwrócić coś, jeśli błąd i coś innego, jeśli nie ma błędu.

    IF(ISERROR( formuła (...)), " text_if_error ", " text_if_no_error ")

    W naszym przykładowym zbiorze danych załóżmy, że nie interesują nas dokładne czasy, chcemy jedynie wiedzieć, którzy uczestnicy z grupy A zostali zakwalifikowani, a którzy nie. Aby to zrobić, należy użyć funkcji MATCH do porównania nazwiska w kolumnie A z listą zakwalifikowanych uczestników w kolumnie D, a następnie przekazać wyniki do ISERROR. Jeśli nazwisko nie jest dostępne w kolumnie D (MATCH zwraca błąd), otrzymujemyFunkcja IF wyświetla "No" lub "Not qualified". Jeśli nazwa pojawia się w kolumnie D (bez błędu), zwraca "Yes" lub "Qualified".

    =IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )

    Jak policzyć liczbę błędów

    Aby uzyskać liczbę błędów w określonej kolumnie, należy sprawdzić zakres, a nie tylko jedną komórkę. W tym celu należy "nakarmić" zakres docelowy funkcją ISERROR i zamienić zwrócone wartości logiczne na 1 i 0 za pomocą podwójnego operatora jednoargumentowego (--). Funkcja SUM lub SUMPRODUCT może zsumować liczby i dostarczyć ostateczny wynik.

    Na przykład:

    =SUMA(--ISERROR(C2:C10))

    Uwaga, działa to jako zwykła formuła tylko w Excelu 365 i Excelu 2021, które obsługują dynamiczne tablice. W Excelu 2019 i wcześniejszych musisz nacisnąć Ctrl + Shift + Enter, aby utworzyć formułę tablicową (nie wpisuj nawiasów klamrowych ręcznie, to nie zadziała!):

    {=SUM(--ISERROR(C2:C10))}

    Alternatywnie możesz użyć funkcji SUMPRODUCT, która obsługuje tablice natywnie, więc formuła może być zakończona zwykłym klawiszem Enter we wszystkich wersjach:

    =SUMPRODUCT(--ISERROR(C2:C10))

    Różnica między ISERROR a IFERROR w Excelu

    Obie funkcje ISERROR i IFERROR są używane do przechwytywania i obsługi błędów w programie Excel. Różnica jest następująca:

    • W czystej postaci ISERROR po prostu testuje, czy wartość jest błędem czy nie. Jest dostępny we wszystkich wersjach Excela.
    • Funkcja IFERROR służy do tłumienia lub maskowania błędów - w przypadku stwierdzenia błędu zwraca inną, określoną przez użytkownika wartość. Jest ona dostępna w programie Excel 2007 i nowszych.

    Na pierwszy rzut oka IFERROR wygląda jak skrócona alternatywa dla formuły IF ISERROR, jednak po bliższym przyjrzeniu się można zauważyć różnicę:

    • IFERROR pozwala na określenie tylko wartość_jeśli_błąd Jeśli nie ma błędu, zawsze zwraca wynik testowanej wartości/formuły.
    • IF ISERROR zapewnia większą elastyczność i pozwala obsłużyć obie sytuacje - co powinno się stać w przypadku wystąpienia błędu i co w przypadku braku błędu.

    Aby lepiej zobrazować ten punkt, rozważ te wzory:

    =IFERROR(A1, "Błąd obliczeniowy")

    =IF(ISERROR(A1), "Błąd obliczeniowy", A1)

    Te dwie formuły są równoważne - obie sprawdzają wartość wynikającą z formuły w A1 i zwracają "Błąd obliczeniowy", jeśli jest to błąd, w przeciwnym razie - zwracają wartość.

    Ale co w sytuacji, gdy chcemy wykonać jakieś obliczenia, jeśli wartość w A1 nie jest błędem? Funkcja IFERROR nie jest w stanie tego zrobić. W przypadku IF ISERROR wystarczy w ostatnim argumencie wpisać pożądane obliczenia. Na przykład:

    =IF(ISERROR(A1), "Błąd obliczeniowy", A1*2)

    Jak widać, ta dłuższa odmiana formuły IFERROR, która często uważana jest za przestarzałą, wciąż może być przydatna :)

    Dostępne pliki do pobrania

    Przykłady formuły ISERROR (plik .xlsx)

    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.