Ενσωματωμένες δηλώσεις IF του Excel - παραδείγματα, βέλτιστες πρακτικές και εναλλακτικές λύσεις

  • Μοιραστείτε Αυτό
Michael Brown

Το σεμινάριο εξηγεί πώς να χρησιμοποιείτε τη συνάρτηση εμφωλευμένου τύπου IF στο Excel για να ελέγχετε πολλαπλές συνθήκες. Θα μάθετε επίσης μερικές άλλες συναρτήσεις που θα μπορούσαν να είναι καλές εναλλακτικές λύσεις για τη χρήση ενός εμφωλευμένου τύπου στο Excel.

Πώς συνήθως υλοποιείτε μια λογική λήψης αποφάσεων στα φύλλα εργασίας του Excel; Στις περισσότερες περιπτώσεις, χρησιμοποιείτε έναν τύπο IF για να ελέγξετε τη συνθήκη σας και να επιστρέψετε μια τιμή αν η συνθήκη ικανοποιείται, μια άλλη τιμή αν η συνθήκη δεν ικανοποιείται. Για να αξιολογήσετε περισσότερες από μια συνθήκες και να επιστρέψετε διαφορετικές τιμές ανάλογα με τα αποτελέσματα, εντάσσετε πολλαπλές IFs η μία μέσα στην άλλη.

Αν και πολύ δημοφιλής, η εμφωλευμένη δήλωση IF δεν είναι ο μόνος τρόπος ελέγχου πολλαπλών συνθηκών στο Excel. Σε αυτό το σεμινάριο, θα βρείτε μια χούφτα εναλλακτικές λύσεις που σίγουρα αξίζει να εξερευνήσετε.

    Ενσωματωμένη δήλωση IF του Excel

    Ακολουθεί ο κλασικός ένθετος τύπος IF του Excel σε γενική μορφή:

    IF( condition1 , result1 , IF( condition2 , result2 , IF( condition3 , result3 , result4 )))

    Μπορείτε να δείτε ότι κάθε επόμενη συνάρτηση IF ενσωματώνεται στην value_if_false Κάθε συνάρτηση IF περικλείεται σε δική της σειρά παρενθέσεων, αλλά όλες οι κλειστές παρενθέσεις βρίσκονται στο τέλος του τύπου.

    Ο γενικός εμφωλευμένος τύπος IF αξιολογεί 3 συνθήκες και επιστρέφει 4 διαφορετικά αποτελέσματα (το αποτέλεσμα 4 επιστρέφεται εάν καμία από τις συνθήκες δεν είναι ΑΛΗΘΗΣ). Μεταφρασμένη σε ανθρώπινη γλώσσα, αυτή η εμφωλευμένη δήλωση IF λέει στο Excel να κάνει τα εξής:

    Δοκιμή condition1 , εάν TRUE - επιστροφή result1 , αν FALSE -

    δοκιμή condition2 , εάν TRUE - επιστροφή r esult2 , αν FALSE -

    δοκιμή condition3 , εάν TRUE - επιστροφή result3 , αν FALSE -

    επιστροφή result4

    Ως παράδειγμα, ας βρούμε τις προμήθειες για έναν αριθμό πωλητών με βάση το ποσό των πωλήσεων που έχουν πραγματοποιήσει:

    Επιτροπή Πωλήσεις
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Πάνω από $150

    Στα μαθηματικά, η αλλαγή της σειράς των αθροισμάτων δεν αλλάζει το άθροισμα. Στο Excel, η αλλαγή της σειράς των συναρτήσεων IF αλλάζει το αποτέλεσμα. Γιατί; Επειδή ένας ένθετος τύπος IF επιστρέφει μια τιμή που αντιστοιχεί στην πρώτη συνθήκη TRUE . Επομένως, στις εμφωλευμένες δηλώσεις IF, είναι πολύ σημαντικό να διατάξετε τις συνθήκες προς τη σωστή κατεύθυνση - από το υψηλό στο χαμηλό ή από το χαμηλό στο υψηλό, ανάλογα με τη λογική του τύπου σας. Στην περίπτωσή μας, ελέγχουμε πρώτα την "υψηλότερη" συνθήκη, μετά τη "δεύτερη υψηλότερη" κ.ο.κ:

    =IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))

    Αν τοποθετούσαμε τις συνθήκες με την αντίστροφη σειρά, από κάτω προς τα πάνω, τα αποτελέσματα θα ήταν όλα λάθος, επειδή ο τύπος μας θα σταματούσε μετά τον πρώτο λογικό έλεγχο (B2>=1) για οποιαδήποτε τιμή μεγαλύτερη από 1. Ας πούμε, έχουμε 100 δολάρια σε πωλήσεις - είναι μεγαλύτερη από 1, οπότε ο τύπος δεν θα έλεγχε άλλες συνθήκες και θα επέστρεφε 3% ως αποτέλεσμα.

    Αν προτιμάτε να ταξινομήσετε τις συνθήκες από τη χαμηλή προς την υψηλή, τότε χρησιμοποιήστε τον τελεστή "λιγότερο από" και αξιολογήστε πρώτα τη συνθήκη "χαμηλότερη", μετά τη συνθήκη "δεύτερη χαμηλότερη" κ.ο.κ:

    =IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))

    Όπως βλέπετε, χρειάζεται αρκετή σκέψη για να χτίσετε σωστά τη λογική μιας ένθετης εντολής IF μέχρι το τέλος. Και παρόλο που το Microsoft Excel επιτρέπει την ένθετη χρήση έως και 64 συναρτήσεων IF σε έναν τύπο, δεν είναι κάτι που θα θέλατε πραγματικά να κάνετε στα φύλλα εργασίας σας. Έτσι, αν εσείς (ή κάποιος άλλος) ατενίζετε τον ένθετο τύπο IF του Excel σας προσπαθώντας να καταλάβετε τι πραγματικά κάνει, ήρθε η ώρα ναεπανεξετάσετε τη στρατηγική σας και πιθανώς να επιλέξετε ένα άλλο εργαλείο στο οπλοστάσιό σας.

    Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Ενσωματωμένη δήλωση IF του Excel.

    Φωλιασμένο IF με συνθήκες OR/AND

    Σε περίπτωση που πρέπει να αξιολογήσετε μερικά σύνολα διαφορετικών συνθηκών, μπορείτε να εκφράσετε αυτές τις συνθήκες χρησιμοποιώντας τη συνάρτηση OR καθώς και τη συνάρτηση AND, να φωλιάσετε τις συναρτήσεις μέσα σε εντολές IF και στη συνέχεια να φωλιάσετε τις εντολές IF μεταξύ τους.

    Φωλιασμένο IF στο Excel με δηλώσεις OR

    Με τη χρήση της συνάρτησης OR μπορείτε να ελέγξετε δύο ή περισσότερες διαφορετικές συνθήκες στο λογικό τεστ κάθε συνάρτησης IF και να επιστρέψετε την τιμή TRUE αν κάποιο (τουλάχιστον ένα) από τα ορίσματα OR αξιολογηθεί ως TRUE. Για να δείτε πώς λειτουργεί στην πραγματικότητα, αναλογιστείτε το ακόλουθο παράδειγμα.

    Ας υποθέσουμε ότι έχετε δύο στήλες πωλήσεων, ας πούμε τις πωλήσεις του Ιανουαρίου στη στήλη Β και τις πωλήσεις του Φεβρουαρίου στη στήλη Γ. Θέλετε να ελέγξετε τους αριθμούς και στις δύο στήλες και να υπολογίσετε την προμήθεια με βάση έναν υψηλότερο αριθμό. Με άλλα λόγια, φτιάχνετε έναν τύπο με την ακόλουθη λογική: αν είτε οι πωλήσεις του Ιανουαρίου είτε του Φεβρουαρίου είναι μεγαλύτερες από 150 δολάρια, ο πωλητής παίρνει 10% προμήθεια, αν οι πωλήσεις του Ιανουαρίου ή του Φεβρουαρίου είναι μεγαλύτερες ή ίσες με$101, ο πωλητής παίρνει 7% προμήθεια, και ούτω καθεξής.

    Για να το έχετε κάνει, γράψτε μερικές δηλώσεις OF όπως OR(B2>150, C2>150) και φωλιάστε τις στις λογικές δοκιμές των συναρτήσεων IF που συζητήθηκαν παραπάνω. Ως αποτέλεσμα, έχετε αυτόν τον τύπο:

    =IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))

    Και η προμήθεια να αποδίδεται με βάση το υψηλότερο ποσό πωλήσεων:

    Για περισσότερα παραδείγματα τύπων, ανατρέξτε στη δήλωση IF OR του Excel.

    Φωλιασμένο IF στο Excel με δηλώσεις AND

    Εάν οι λογικές σας δοκιμές περιλαμβάνουν πολλαπλές συνθήκες και όλες αυτές οι συνθήκες πρέπει να αποτιμηθούν σε ΑΛΗΘΙΝΗ, εκφράστε τις με τη χρήση της συνάρτησης AND.

    Για παράδειγμα, για να εκχωρήσετε τις προμήθειες με βάση έναν μικρότερο αριθμό πωλήσεων, πάρτε τον παραπάνω τύπο και αντικαταστήστε τις δηλώσεις OR με δηλώσεις AND. Για να το θέσουμε διαφορετικά, λέτε στο Excel να επιστρέψει 10% μόνο εάν οι πωλήσεις Ιανουαρίου και Φεβρουαρίου είναι μεγαλύτερες από 150 δολάρια, 7% εάν οι πωλήσεις Ιανουαρίου και Φεβρουαρίου είναι μεγαλύτερες ή ίσες με 101 δολάρια κ.ο.κ.

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))

    Ως αποτέλεσμα, ο εμφωλευμένος τύπος IF υπολογίζει την προμήθεια με βάση τον μικρότερο αριθμό στις στήλες B και C. Εάν κάποια από τις στήλες είναι κενή, δεν υπάρχει καθόλου προμήθεια, επειδή δεν πληρούται καμία από τις συνθήκες AND:

    Αν θέλετε να επιστρέψετε 0% αντί για κενά κελιά, αντικαταστήστε μια κενή συμβολοσειρά (''") στο τελευταίο όρισμα με 0%:

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))

    Περισσότερες πληροφορίες μπορείτε να βρείτε εδώ: Excel IF με πολλαπλές συνθήκες AND/OR.

    VLOOKUP αντί για ένθετο IF στο Excel

    Όταν έχετε να κάνετε με "κλίμακες", δηλαδή με συνεχείς περιοχές αριθμητικών τιμών που καλύπτουν μαζί ολόκληρο το εύρος, στις περισσότερες περιπτώσεις μπορείτε να χρησιμοποιήσετε τη συνάρτηση VLOOKUP αντί για ένθετα IF.

    Για αρχή, φτιάξτε έναν πίνακα αναφοράς όπως φαίνεται στο παρακάτω στιγμιότυπο. Και στη συνέχεια, δημιουργήστε έναν τύπο Vlookup με κατά προσέγγιση ταύτιση , δηλαδή με το range_lookup το όρισμα τίθεται σε TRUE.

    Αν υποθέσουμε ότι η τιμή αναζήτησης βρίσκεται στο B2 και ο πίνακας αναφοράς είναι F2:G5, ο τύπος έχει ως εξής:

    =VLOOKUP(B2,$F$2:$G$5,2,TRUE)

    Παρακαλούμε σημειώστε ότι διορθώνουμε το table_array με απόλυτες αναφορές ($F$2:$G$5) για να αντιγραφεί σωστά ο τύπος σε άλλα κελιά:

    Θέτοντας το τελευταίο όρισμα του τύπου Vlookup σε TRUE, λέτε στο Excel να αναζητήσει το πλησιέστερη αντιστοιχία - αν δεν βρεθεί ακριβής αντιστοιχία, επιστρέφει την αμέσως μεγαλύτερη τιμή που είναι μικρότερη από την τιμή αναζήτησης. Ως αποτέλεσμα, ο τύπος σας θα ταιριάζει όχι μόνο με τις ακριβείς τιμές στον πίνακα αναζήτησης, αλλά και με οποιεσδήποτε τιμές που βρίσκονται στο ενδιάμεσο.

    Για παράδειγμα, η τιμή αναζήτησης στο B3 είναι $95. Αυτός ο αριθμός δεν υπάρχει στον πίνακα αναζήτησης και η Vlookup με ακριβή αντιστοίχιση θα επέστρεφε ένα σφάλμα #N/A σε αυτή την περίπτωση. Αλλά η Vlookup με προσεγγιστική αντιστοίχιση συνεχίζει την αναζήτηση μέχρι να βρει την πλησιέστερη τιμή που είναι μικρότερη από την τιμή αναζήτησης (η οποία είναι $50 στο παράδειγμά μας) και επιστρέφει μια τιμή από τη δεύτερη στήλη της ίδιας γραμμής (η οποία είναι 5%).

    Τι γίνεται όμως αν η τιμή αναζήτησης είναι μικρότερη από τον μικρότερο αριθμό στον πίνακα αναζήτησης ή το κελί αναζήτησης είναι κενό; Σε αυτή την περίπτωση, ένας τύπος Vlookup θα επιστρέψει το σφάλμα #N/A. Αν δεν είναι αυτό που πραγματικά θέλετε, φωλιάστε το VLOOKUP μέσα στο IFERROR και δώστε την τιμή που θα εξάγεται όταν η τιμή αναζήτησης δεν βρίσκεται. Για παράδειγμα:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Εκτός εύρους")

    Σημαντική σημείωση! Για να λειτουργήσει σωστά ένας τύπος Vlookup με κατά προσέγγιση αντιστοίχιση, η πρώτη στήλη στον πίνακα αναζήτησης πρέπει να είναι ταξινομημένη σε αύξουσα σειρά , από το μικρότερο προς το μεγαλύτερο.

    Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Ακριβής αντιστοίχιση VLOOKUP vs. προσεγγιστική αντιστοίχιση VLOOKUP.

    Η δήλωση IFS ως εναλλακτική λύση στην ένθετη συνάρτηση IF

    Στο Excel 2016 και σε μεταγενέστερες εκδόσεις, η Microsoft εισήγαγε μια ειδική συνάρτηση για την αξιολόγηση πολλαπλών συνθηκών - τη συνάρτηση IFS.

    Ένας τύπος IFS μπορεί να χειριστεί έως και 127 logical_test / value_if_true ζεύγη, και η πρώτη λογική δοκιμασία που αποτιμάται σε TRUE "κερδίζει":

    IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2]...)

    Σύμφωνα με την παραπάνω σύνταξη, ο ένθετος τύπος IF μπορεί να ανακατασκευαστεί με τον ακόλουθο τρόπο:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)

    Προσέξτε ότι η συνάρτηση IFS επιστρέφει το σφάλμα #N/A αν δεν πληρούται καμία από τις καθορισμένες συνθήκες. Για να το αποφύγετε αυτό, μπορείτε να προσθέσετε ένα ακόμη logical_test / value_if_true στο τέλος του τύπου σας που θα επιστρέφει 0 ή κενή συμβολοσειρά ("") ή όποια άλλη τιμή θέλετε, αν καμία από τις προηγούμενες λογικές δοκιμές δεν είναι ΑΛΗΘΗΣ:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")

    Ως αποτέλεσμα, ο τύπος μας θα επιστρέψει μια κενή συμβολοσειρά (κενό κελί) αντί για το σφάλμα #N/A, εάν ένα αντίστοιχο κελί στη στήλη Β είναι κενό ή περιέχει κείμενο ή αρνητικό αριθμό.

    Σημείωση. Όπως και η ένθετη IF, η συνάρτηση IFS του Excel επιστρέφει μια τιμή που αντιστοιχεί στην πρώτη συνθήκη που αξιολογείται ως TRUE, γι' αυτό και η σειρά των λογικών δοκιμών σε έναν τύπο IFS έχει σημασία.

    Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Excel IFS function instead of nested IF.

    ΕΠΙΛΟΓΗ αντί για ένθετο τύπο IF στο Excel

    Ένας άλλος τρόπος για να ελέγξετε πολλαπλές συνθήκες μέσα σε έναν ενιαίο τύπο στο Excel είναι η χρήση της συνάρτησης CHOOSE, η οποία έχει σχεδιαστεί για να επιστρέφει μια τιμή από τη λίστα με βάση τη θέση της τιμής αυτής.

    Εφαρμόζοντας στο σύνολο δεδομένων του δείγματός μας, ο τύπος παίρνει την ακόλουθη μορφή:

    =CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)

    Στο πρώτο όρισμα ( index_num ), αξιολογείτε όλες τις συνθήκες και αθροίζετε τα αποτελέσματα. Δεδομένου ότι το TRUE ισούται με 1 και το FALSE με 0, με αυτόν τον τρόπο υπολογίζετε τη θέση της τιμής που θα επιστρέψετε.

    Για παράδειγμα, η τιμή στο B2 είναι $150. Για την τιμή αυτή, οι 3 πρώτες συνθήκες είναι ΑΛΗΘΙΝΕΣ και η τελευταία (B2> 150) είναι ΨΕΥΔΗΣ. Έτσι, index_num ισούται με 3, που σημαίνει ότι επιστρέφεται η 3η τιμή, η οποία είναι 7%.

    Συμβουλή. Εάν καμία από τις λογικές δοκιμές δεν είναι ΑΛΗΘΗΣ, index_num ισούται με 0 και ο τύπος επιστρέφει το σφάλμα #VALUE! Μια εύκολη λύση είναι η ενσωμάτωση της CHOOSE στη συνάρτηση IFERROR ως εξής:

    =IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")

    Για περισσότερες πληροφορίες, ανατρέξτε στη σελίδα Excel CHOOSE function with formula examples.

    Η συνάρτηση SWITCH ως συνοπτική μορφή ένθετου IF στο Excel

    Σε περιπτώσεις που έχετε να κάνετε με ένα σταθερό σύνολο προκαθορισμένων τιμών και όχι με κλίμακες, η συνάρτηση SWITCH μπορεί να αποτελέσει μια συμπαγή εναλλακτική λύση αντί για πολύπλοκες εμφωλευμένες εντολές IF:

    SWITCH(expression, value1, result1, value2, result2, ..., [default])

    Η συνάρτηση SWITCH αξιολογεί έκφραση έναντι μιας λίστας τιμές και επιστρέφει το αποτέλεσμα που αντιστοιχεί στην πρώτη αντιστοιχία που βρέθηκε.

    Σε περίπτωση που θα θέλατε να υπολογίσετε την προμήθεια με βάση τους ακόλουθους βαθμούς και όχι τα ποσά των πωλήσεων, μπορείτε να χρησιμοποιήσετε αυτή τη συμπαγή έκδοση του ένθετου τύπου IF στο Excel:

    =SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")

    Ή, μπορείτε να δημιουργήσετε έναν πίνακα αναφοράς όπως φαίνεται στο παρακάτω στιγμιότυπο και να χρησιμοποιήσετε αναφορές κελιών αντί για σκληρά κωδικοποιημένες τιμές:

    =SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")

    Παρατηρήστε ότι κλειδώνουμε όλες τις αναφορές εκτός από την πρώτη με το σύμβολο $ για να μην αλλάζουν κατά την αντιγραφή του τύπου σε άλλα κελιά:

    Σημείωση: Η λειτουργία SWITCH είναι διαθέσιμη μόνο στο Excel 2016 και νεότερες εκδόσεις.

    Για περισσότερες πληροφορίες, ανατρέξτε στη συνάρτηση SWITCH - η συμπαγής μορφή της ένθετης εντολής IF.

    Συνδυασμός πολλαπλών συναρτήσεων IF στο Excel

    Όπως αναφέρθηκε στο προηγούμενο παράδειγμα, η συνάρτηση SWITCH εισήχθη μόνο στο Excel 2016. Για να χειριστείτε παρόμοιες εργασίες σε παλαιότερες εκδόσεις του Excel, μπορείτε να συνδυάσετε δύο ή περισσότερες εντολές IF χρησιμοποιώντας τον τελεστή Concatenate (&) ή τη συνάρτηση CONCATENATE.

    Για παράδειγμα:

    =(IF(C2="a", 10%, "") &- IF(C2="b", 7%, "") &- IF(C2="c", 5%, "") &- IF(C2="d", 3%, ""))*1

    Ή

    =CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") &- IF(C2="d", 3%, ""))*1

    Όπως ίσως παρατηρήσατε, πολλαπλασιάζουμε το αποτέλεσμα με 1 και στους δύο τύπους. Αυτό γίνεται για να μετατρέψουμε μια συμβολοσειρά που επιστρέφεται από τον τύπο Concatenate σε αριθμό. Εάν η αναμενόμενη έξοδός σας είναι κείμενο, τότε η πράξη πολλαπλασιασμού δεν είναι απαραίτητη.

    Για περισσότερες πληροφορίες, ανατρέξτε στη λειτουργία CONCATENATE στο Excel.

    Μπορείτε να δείτε ότι το Microsoft Excel παρέχει μια χούφτα καλές εναλλακτικές λύσεις για τους ένθετους τύπους IF και ελπίζουμε ότι αυτό το σεμινάριο σας έδωσε κάποιες ενδείξεις για το πώς να τις αξιοποιήσετε στα φύλλα εργασίας σας. Για να δείτε από κοντά τα παραδείγματα που συζητήθηκαν σε αυτό το σεμινάριο, μπορείτε να κατεβάσετε το δείγμα του βιβλίου εργασίας μας παρακάτω. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!

    Βιβλίο ασκήσεων για κατέβασμα

    Ενσωματωμένη δήλωση If του Excel - παραδείγματα (.xlsx αρχείο)

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.