Spis treści
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)