Πίνακας περιεχομένων
Το σεμινάριο εξετάζει τις πρακτικές χρήσεις της συνάρτησης ISERROR του Excel και δείχνει πώς να ελέγχετε διάφορους τύπους για σφάλματα.
Όταν γράφετε έναν τύπο που το Excel δεν καταλαβαίνει ή δεν μπορεί να υπολογίσει, σας εφιστά την προσοχή στο πρόβλημα εμφανίζοντας ένα μήνυμα σφάλματος. Η συνάρτηση ISERROR μπορεί να σας βοηθήσει να εντοπίσετε τα σφάλματα και να παρέχετε μια εναλλακτική λύση όταν εντοπίζεται ένα σφάλμα.
Συνάρτηση ISERROR στο Excel
Η συνάρτηση ISERROR του Excel εντοπίζει όλα τα είδη σφαλμάτων, συμπεριλαμβανομένων των #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! και #SPILL!. Το αποτέλεσμα είναι μια τιμή Boolean: TRUE εάν εντοπίστηκε σφάλμα, FALSE διαφορετικά.
Η λειτουργία είναι διαθέσιμη σε όλες τις εκδόσεις του Excel 2000 έως 2021 και του Excel 365.
Η σύνταξη της συνάρτησης ISERROR είναι απλή:
ISERROR(value)Πού αξία είναι η τιμή του κελιού ή ο τύπος που θα ελεγχθεί για σφάλματα.
Τύπος ISERROR του Excel
Για να δημιουργήσετε έναν τύπο ISERROR στην απλούστερη μορφή του, δώστε μια αναφορά στο κελί που θέλετε να ελέγξετε για σφάλματα. Για παράδειγμα:
=ISERROR(A2)
Σε περίπτωση που βρεθεί κάποιο σφάλμα, θα λάβετε TRUE. Εάν δεν υπάρχει σφάλμα στο εξεταζόμενο κελί, θα λάβετε FALSE:
Τύπος IF ISERROR στο Excel
Για να επιστρέψετε ένα προσαρμοσμένο μήνυμα ή να εκτελέσετε έναν διαφορετικό υπολογισμό όταν προκύψει σφάλμα, χρησιμοποιήστε το ISERROR μαζί με τη συνάρτηση IF. Ο γενικός τύπος έχει ως εξής:
IF(ISERROR( τύπος (...), text_or_calculation_if_error , τύπος ())Μεταφρασμένο σε ανθρώπινη γλώσσα, λέει: αν ο κύριος τύπος καταλήξει σε σφάλμα, εμφανίστε το καθορισμένο κείμενο ή εκτελέστε έναν άλλο υπολογισμό, διαφορετικά επιστρέψτε ένα κανονικό αποτέλεσμα του τύπου.
Στην παρακάτω εικόνα, η διαίρεση του συνολικού ποσού με την ποσότητα δημιουργεί μερικά σφάλματα στο Τιμή στήλη:
Για να αντικαταστήσετε όλους τους διαφορετικούς κωδικούς σφάλματος με ένα προσαρμοσμένο κείμενο, μπορείτε να χρησιμοποιήσετε τον ακόλουθο τύπο IF ISERROR:
=IF(ISERROR(A2/B2), "Άγνωστος", A2/B2)
Στο Excel 2007 και μεταγενέστερες εκδόσεις, το ίδιο αποτέλεσμα μπορεί να επιτευχθεί με τη βοήθεια της ενσωματωμένης συνάρτησης IFERROR:
=IFERROR(A2/B2, "Άγνωστος")
Θα πρέπει να σημειωθεί ότι ο τύπος IFERROR εκτελείται λίγο πιο γρήγορα επειδή εκτελεί τον υπολογισμό A2/B2 μόνο μία φορά. Ενώ ο IF ISERROR τον υπολογίζει δύο φορές - πρώτα για να δει αν παράγει σφάλμα και στη συνέχεια ξανά αν ο έλεγχος είναι FALSE.
IF ISERROR Τύπος VLOOKUP
Η χρήση του ISERROR με το VLOOKUP είναι, στην πραγματικότητα, μια ειδική περίπτωση του τύπου IF ISERROR που συζητήθηκε παραπάνω. Όταν η συνάρτηση VLOOKUP δεν μπορεί να βρει την τιμή αναζήτησης ή αποτυγχάνει για οποιονδήποτε άλλο λόγο, εμφανίζετε ένα προσαρμοσμένο μήνυμα κειμένου χρησιμοποιώντας αυτή τη σύνταξη:
IF(ISERROR(VLOOKUP(...)), " custom_text ", VLOOKUP(....))Για αυτό το παράδειγμα, ας τραβήξουμε τους χρόνους από τον πίνακα αναζήτησης (D3:E10) στον κύριο πίνακα (A3:B15). Εάν η τιμή αναζήτησης (όνομα συμμετέχοντα) δεν υπάρχει στον πίνακα αναζήτησης, θα επιστρέψουμε "Not qualified".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Συμβουλή. Εάν θέλετε να εμφανίσετε ένα προσαρμοσμένο κείμενο μόνο όταν ένα η τιμή αναζήτησης δεν βρέθηκε (σφάλμα #N/A) αγνοώντας άλλα σφάλματα, τότε χρησιμοποιήστε τον τύπο IFNA VLOOKUP στο Excel 2013 και νεότερες εκδόσεις ή IF ISNA VLOOKUP σε παλαιότερες εκδόσεις.
IF ISERROR INDEX MATCH τύπος
Όταν εκτελείτε μια αναζήτηση με τη βοήθεια του συνδυασμού INDEX MATCH (ή του τύπου INDEX XMATCH στο Excel 365), μπορείτε να παγιδεύσετε και να χειριστείτε τυχόν σφάλματα χρησιμοποιώντας την ίδια τεχνική - η συνάρτηση ISERROR ελέγχει για σφάλματα και IF εμφανίζει το καθορισμένο κείμενο όταν εμφανίζεται οποιοδήποτε σφάλμα.
IF(ISERROR(INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))), " custom_text ", INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))Ας υποθέσουμε ότι ο πίνακας αναζήτησης έχει χρόνους στην πρώτη στήλη. Καθώς το VLOOKUP δεν μπορεί να κοιτάξει προς τα αριστερά του, χρησιμοποιούμε τον τύπο INDEX MATCH για να τραβήξουμε τους χρόνους από τη στήλη D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Και στη συνέχεια, το ενσωματώνετε στον προαναφερθέντα γενικό τύπο για να αντικαταστήσετε τα σφάλματα που εντοπίστηκαν με οποιοδήποτε κείμενο θέλετε:
=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)))
Σημείωση. Όπως και με τον τύπο IF ISERROR VLOOKUP, είναι πιο λογικό να παγιδεύετε μόνο τα σφάλματα #N/A και να μην συγκαλύπτετε πιθανά προβλήματα με τον ίδιο τον τύπο. Για το σκοπό αυτό, τυλίξτε τον τύπο INDEX MATH σε IFNA στο Excel 2013 και νεότερες εκδόσεις ή IF ISNA σε προηγούμενες εκδόσεις.
IF ISERROR Τύπος Ναι/Όχι
Σε όλα τα προηγούμενα παραδείγματα, το IF ISERROR επέστρεψε το αποτέλεσμα του κύριου τύπου αν δεν είναι σφάλμα. Ωστόσο, μπορεί επίσης να λειτουργήσει με διαφορετικό τρόπο - να επιστρέψει κάτι αν υπάρχει σφάλμα και κάτι άλλο αν δεν υπάρχει σφάλμα.
IF(ISERROR( τύπος (...)), " text_if_error ", " text_if_no_error ")Στο σύνολο δεδομένων του δείγματός μας, ας υποθέσουμε ότι δεν σας ενδιαφέρουν οι ακριβείς χρόνοι, απλά θέλετε να μάθετε ποιοι συμμετέχοντες από την ομάδα Α έχουν τα προσόντα και ποιοι όχι. Για να το κάνετε αυτό, χρησιμοποιήστε τη συνάρτηση MATCH για να συγκρίνετε το όνομα στη στήλη Α με τη λίστα των συμμετεχόντων που έχουν τα προσόντα στη στήλη Δ και στη συνέχεια να σερβίρετε τα αποτελέσματα στο ISERROR. Αν το όνομα δεν είναι διαθέσιμο στη στήλη Δ (η MATCH επιστρέφει σφάλμα), λάβετεη συνάρτηση IF να εμφανίζει "No" ή "Not qualified". Εάν το όνομα εμφανίζεται στη στήλη D (χωρίς σφάλμα), επιστρέφει "Yes" ή "Qualified".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "Όχι", "Ναι" )
Πώς να μετρήσετε τον αριθμό των σφαλμάτων
Για να λάβετε τον αριθμό των σφαλμάτων σε μια συγκεκριμένη στήλη, πρέπει να ελέγξετε μια περιοχή, όχι μόνο ένα κελί. Για το σκοπό αυτό, "τροφοδοτήστε" την περιοχή-στόχο στην ISERROR και μετατρέψτε τις επιστρεφόμενες τιμές Boolean σε 1 και 0 χρησιμοποιώντας τον διπλό μοναδιαίο τελεστή (--). Η συνάρτηση SUM ή SUMPRODUCT μπορεί να αθροίσει τους αριθμούς και να παραδώσει το τελικό αποτέλεσμα.
Για παράδειγμα:
=SUM(--ISERROR(C2:C10))
Λάβετε υπόψη ότι αυτό λειτουργεί ως κανονικός τύπος μόνο στο Excel 365 και στο Excel 2021, τα οποία υποστηρίζουν δυναμικούς πίνακες. Στο Excel 2019 και σε προγενέστερες εκδόσεις, πρέπει να πατήσετε Ctrl + Shift + Enter για να δημιουργήσετε έναν τύπο πίνακα (μην πληκτρολογήσετε χειροκίνητα κουρδιστές αγκύλες, αυτό δεν θα λειτουργήσει!):
{=SUM(--ISERROR(C2:C10))}
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη συνάρτηση SUMPRODUCT που χειρίζεται πίνακες εγγενώς, οπότε ο τύπος μπορεί να ολοκληρωθεί με το συνηθισμένο πλήκτρο Enter σε όλες τις εκδόσεις:
=SUMPRODUCT(--ISERROR(C2:C10))
Διαφορά μεταξύ ISERROR και IFERROR στο Excel
Και οι δύο συναρτήσεις ISERROR και IFERROR χρησιμοποιούνται για την παγίδευση και τον χειρισμό σφαλμάτων στο Excel. Η διαφορά είναι η εξής:
- Στην καθαρή της μορφή, η ISERROR απλώς ελέγχει αν η τιμή είναι σφάλμα ή όχι. Είναι διαθέσιμη σε όλες τις εκδόσεις του Excel.
- Η συνάρτηση IFERROR έχει σχεδιαστεί για να καταστέλλει ή να συγκαλύπτει τα σφάλματα - όταν εντοπίζεται ένα σφάλμα, επιστρέφει μια άλλη τιμή που εσείς καθορίζετε. Είναι διαθέσιμη στο Excel 2007 και νεότερες εκδόσεις.
Με μια πρώτη ματιά, η IFERROR μοιάζει με μια σύντομη εναλλακτική λύση του τύπου IF ISERROR. Με μια πιο προσεκτική ματιά, ωστόσο, μπορείτε να παρατηρήσετε τη διαφορά:
- IFERROR σας επιτρέπει να καθορίσετε μόνο value_if_error Εάν δεν υπάρχει σφάλμα, επιστρέφει πάντα το αποτέλεσμα της τιμής/του τύπου που δοκιμάστηκε.
- Το IF ISERROR παρέχει μεγαλύτερη ευελιξία και σας επιτρέπει να χειριστείτε και τις δύο καταστάσεις - τι πρέπει να συμβεί σε περίπτωση σφάλματος και τι σε περίπτωση που δεν υπάρχει σφάλμα.
Για να καταλάβετε καλύτερα το θέμα, αναλογιστείτε τους ακόλουθους τύπους:
=IFERROR(A1, "Σφάλμα υπολογισμού")
=IF(ISERROR(A1), "Σφάλμα υπολογισμού", A1)
Αυτοί οι δύο τύποι είναι ισοδύναμοι - και οι δύο ελέγχουν μια τιμή με βάση τον τύπο στο A1 και επιστρέφουν "Σφάλμα υπολογισμού" αν πρόκειται για σφάλμα, διαφορετικά - επιστρέφουν την τιμή.
Τι γίνεται όμως αν θέλετε να εκτελέσετε κάποιον υπολογισμό αν η τιμή στο A1 δεν είναι σφάλμα; Η συνάρτηση IFERROR δεν μπορεί να το κάνει αυτό. Στην περίπτωση της IF ISERROR, απλά πληκτρολογήστε τον επιθυμητό υπολογισμό στο τελευταίο όρισμα. Για παράδειγμα:
=IF(ISERROR(A1), "Σφάλμα υπολογισμού", A1*2)
Όπως βλέπετε, αυτή η μεγαλύτερη παραλλαγή του τύπου IFERROR, που συχνά θεωρείται ξεπερασμένη, μπορεί να είναι ακόμα χρήσιμη :)
Διαθέσιμες λήψεις
Παραδείγματα τύπου ISERROR (.xlsx αρχείο)