Sadržaj
Udžbenik razmatra praktičnu upotrebu Excelove funkcije ISERROR i pokazuje kako testirati različite formule za pogreške.
Kada napišete formulu koju Excel ne razumije ili ne može izračunati, skreće vam pozornost na problem prikazivanjem poruke o pogrešci. Funkcija ISERROR može vam pomoći u otkrivanju pogrešaka i pružiti alternativu kada se pogreška pronađe.
Funkcija ISERROR u programu Excel
Funkcija ISERROR programa Excel hvata sve vrste pogrešaka, uključujući #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! i #SPILL!. Rezultat je Booleova vrijednost: TRUE ako se otkrije pogreška, FALSE u suprotnom.
Funkcija je dostupna u svim verzijama programa Excel 2000 do 2021 i Excel 365.
Sintaksa ISERROR funkcija je jednostavna kao ova:
ISERROR(vrijednost)Gdje je vrijednost vrijednost ćelije ili formula za provjeru grešaka.
Excel ISERROR formula
Da biste stvorili formulu ISERROR u najjednostavnijem obliku, navedite referencu na ćeliju koju želite testirati na pogreške. Na primjer:
=ISERROR(A2)
U slučaju da se pronađe bilo kakva pogreška, dobit ćete TRUE. Ako nema pogreške u testiranoj ćeliji, dobit ćete FALSE:
IF ISERROR formulu u programu Excel
Da biste vratili prilagođenu poruku ili izvršili drugačiji izračun kada se pojavi pogreška, koristite ISERROR zajedno s funkcijom IF. Generička formula izgleda ovako:
IF(ISERROR( formula(…), text_or_calculation_if_error, formula())Prevedeno na ljudski jezik, kaže: ako glavna formula rezultira u pogrešci, prikažite navedeni tekst ili pokrenite drugi izračun, inače vratite normalan rezultat formule.
Na slici ispod, dijeljenje ukupnog iznosa s količinom generira nekoliko pogrešaka u Cijeni stupac:
Da biste zamijenili sve različite kodove pogrešaka prilagođenim tekstom, možete koristiti sljedeću formulu IF ISERROR:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
U programu Excel 2007 i novijim verzijama isti se rezultat može postići uz pomoć ugrađene funkcije IFERROR:
=IFERROR(A2/B2, "Unknown")
Trebalo bi biti primijetio da formula IFERROR radi malo brže jer izvodi izračun A2/B2 samo jednom. Dok IF ISERROR to izračunava dvaput - prvo da vidi hoće li generirati pogrešku, a zatim opet ako je test FALSE.
IF ISERROR VLOOKUP formula
Korištenje ISERROR s VLOOKUP-om je, zapravo, poseban slučaj IF IS Formula GREŠKE o kojoj smo govorili gore. Kada funkcija VLOOKUP ne može pronaći traženu vrijednost ili ne uspije iz bilo kojeg drugog razloga, prikazujete prilagođenu tekstualnu poruku pomoću ove sintakse:
IF(ISERROR(VLOOKUP(…)), " prilagođeni_tekst", VLOOKUP(…))Za ovaj primjer, povucimo vremena iz tablice pretraživanja (D3:E10) u glavnu tablicu (A3:B15). Ako tražena vrijednost (ime sudionika) ne postoji utablicu za pretraživanje, vratit ćemo "Nije kvalificirano".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Savjet. Ako želite prikazati prilagođeni tekst samo kada vrijednost traženja nije pronađena (pogreška #N/A) zanemarujući druge pogreške, upotrijebite formulu IFNA VLOOKUP u programu Excel 2013 i novijim ili IF ISNA VLOOKUP u starijim verzijama verzije.
IF ISERROR INDEX MATCH formula
Prilikom traženja uz pomoć kombinacije INDEX MATCH (ili formule INDEX XMATCH u programu Excel 365), možete uhvatiti i obraditi sve moguće pogreške koristeći istu tehniku - funkcija ISERROR provjerava pogreške i IF prikazuje navedeni tekst kada se pojavi bilo kakva pogreška.
IF(ISERROR(INDEX ( return_column , MATCH ( lookup_value , lookup_column<2)>, 0)))), " prilagođeni_tekst ", INDEX ( povratni_stupac , MATCH ( tražna_vrijednost , tražni_stupac , 0)))Pretpostavimo da pregledna tablica ima vremena u prvom stupcu. Budući da VLOOKUP ne može pogledati ulijevo, koristimo formulu INDEX MATCH za povlačenje vremena iz stupca D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
A zatim ga ugniježdite u gore spomenutu generičku formulu da biste uhvaćene pogreške zamijenili bilo kojim tekstom koji želite:
=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)))
Napomena. Kao i kod formule IF ISERROR VLOOKUP, ima više smisla uhvatiti samo #N/A pogreške i ne prikrivati potencijalne probleme samom formulom. U tu svrhu zamotajte svoju formulu INDEX MATH u IFNA u programu Excel 2013 i novijim verzijama ili IF ISNA u ranijim verzijama.
AKOISERROR Da/Ne formula
U svim prethodnim primjerima, IF ISERROR je vratio rezultat glavne formule ako to nije pogreška. Međutim, može funkcionirati i na drugačiji način - vratiti nešto ako je pogreška, a nešto drugo ako nema pogreške.
IF(ISERROR( formula (…)), " text_if_error " , " text_if_no_error ")U našem oglednom skupu podataka, pretpostavimo da vas ne zanimaju točna vremena, samo želite znati koji su sudionici iz skupine A kvalificirani, a koji nisu. Da biste to učinili, upotrijebite funkciju MATCH za usporedbu imena u stupcu A s popisom kvalificiranih sudionika u stupcu D, a zatim poslužite rezultate ISERROR-u. Ako naziv nije dostupan u stupcu D (MATCH vraća pogrešku), neka funkcija IF prikaže "No" ili "Not qualified". Ako se ime pojavljuje u stupcu D (bez pogreške), vratite "Da" ili "Kvalificirano".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )
Kako izbrojati broj pogrešaka
Da biste dobili broj pogrešaka u određenom stupcu, trebate provjeriti raspon, a ne samo jednu ćeliju. U tu svrhu "ubacite" ciljni raspon u ISERROR i prisilite vraćene Booleove vrijednosti na 1 i 0 pomoću dvostrukog unarnog operatora (--). Funkcija SUM ili SUMPRODUCT može zbrojiti brojeve i isporučiti konačni rezultat.
Na primjer:
=SUM(--ISERROR(C2:C10))
Napominjemo da ovo funkcionira kao redovita formula samo u Excelu 365 i Excel 2021, koji podržavaju dinamičke nizove. U Excelu 2019 i ranijim verzijama, vipotrebno je pritisnuti Ctrl + Shift + Enter za stvaranje formule polja (nemojte ručno upisivati vitičaste zagrade, to neće raditi!):
{=SUM(--ISERROR(C2:C10))}
Alternativno, možete koristiti SUMPRODUCT funkcija koja nativno rukuje nizovima, tako da se formula može dovršiti uobičajenom tipkom Enter u svim verzijama:
=SUMPRODUCT(--ISERROR(C2:C10))
Razlika između ISERROR i IFERROR u Excelu
I funkcije ISERROR i IFERROR koriste se za hvatanje i obradu pogrešaka u programu Excel. Razlika je sljedeća:
- U svom čistom obliku, ISERROR samo testira je li vrijednost pogreška ili ne. Dostupna je u svim verzijama programa Excel.
- Funkcija IFERROR dizajnirana je za suzbijanje ili prikrivanje pogrešaka - kada se pronađe pogreška, vraća drugu vrijednost koju navedete. Dostupan je u Excelu 2007 i novijim.
Na prvi pogled, IFERROR izgleda kao skraćena alternativa formuli IF ISERROR. Međutim, ako bolje pogledate, možete primijetiti razliku:
- IFERROR vam omogućuje da navedete samo value_if_error . Ako nema pogreške, uvijek vraća rezultat testirane vrijednosti/formule.
- IF ISERROR pruža veću fleksibilnost i omogućuje vam rješavanje obje situacije - što bi se trebalo dogoditi ako se pojavi pogreška, a što ako nema pogreške.
Da biste bolje ilustrirali poantu, razmotrite ove formule:
=IFERROR(A1, "Calculation error")
=IF(ISERROR(A1), "Calculation error", A1)
Ove dvije formule su ekvivalentne - obje provjeravaju vrijednost vođenu formulom u A1 i povratak"Pogreška u izračunu" ako je pogreška, inače - vratite vrijednost.
Ali što ako želite izvesti neki izračun ako vrijednost u A1 nije pogreška? Funkcija IFERROR to ne može učiniti. U slučaju IF ISERROR, samo upišite željeni izračun u zadnji argument. Na primjer:
=IF(ISERROR(A1), "Calculation error", A1*2)
Kao što vidite, ova duža varijacija formule IFERROR, koja se često smatra zastarjelom, još uvijek može biti korisna :)
Dostupna preuzimanja
Primjeri formule ISERROR (.xlsx datoteka)