Δήλωση Excel IF για μερική αντιστοίχιση κειμένου (μπαλαντέρ)

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

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

Κάθε φορά που θέλετε να εκτελέσετε μερική ή ασαφή αντιστοίχιση στο Excel, η πιο προφανής λύση είναι η χρήση μπαλαντέρ. Τι γίνεται όμως αν μια συγκεκριμένη συνάρτηση που πρέπει να χρησιμοποιήσετε δεν υποστηρίζει χαρακτήρες μπαλαντέρ; Δυστυχώς, το Excel IF είναι μια από αυτές τις συναρτήσεις. Αυτό είναι ιδιαίτερα απογοητευτικό αν σκεφτεί κανείς ότι άλλες "υπό όρους" συναρτήσεις όπως οι COUNTIF, SUMIF και AVERAGEIFS λειτουργούν με μπαλαντέρ τέλεια.

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

    Γιατί η λειτουργία Excel IF με μπαλαντέρ δεν λειτουργεί

    Στον παρακάτω πίνακα δείγματος, υποθέστε ότι θέλετε να ελέγξετε αν τα αναγνωριστικά στην πρώτη στήλη περιέχουν το γράμμα "Α". Αν βρεθεί - εμφανίστε "Ναι" στη στήλη Β, αν όχι - εμφανίστε "Όχι".

    Φαίνεται ότι η συμπερίληψη κειμένου μπαλαντέρ στη λογική δοκιμή θα ήταν μια εύκολη λύση:

    =IF(A2="*a*", "Ναι", "Όχι")

    Αλλά δυστυχώς δεν λειτουργεί. Ο τύπος επιστρέφει "Όχι" για όλα τα κελιά, ακόμη και για εκείνα που περιέχουν "Α":

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

    =COUNTIF(A2:A10, "*a*")

    Το Excel IF περιέχει μερικό κείμενο

    Τώρα που γνωρίζετε τον λόγο για τον οποίο ένας τύπος IF με μπαλαντέρ αποτυγχάνει, ας προσπαθήσουμε να βρούμε πώς θα τον κάνουμε να λειτουργήσει. Για τον σκοπό αυτό, θα ενσωματώσουμε απλώς μια συνάρτηση που δέχεται μπαλαντέρ στον λογικό έλεγχο του IF, δηλαδή τη συνάρτηση COUNTIF:

    IF(COUNTIF( κύτταρο , "* κείμενο *"), value_if_true, value_if_false)

    Με αυτή την προσέγγιση, η IF δεν έχει κανένα πρόβλημα με την κατανόηση των μπαλαντέρ και αναγνωρίζει άψογα τα κελιά που περιέχουν είτε "A" είτε "a" (δεδομένου ότι η COUNTIF δεν είναι ευαίσθητη στην πεζότητα):

    =IF(COUNTIF(A2, "*a*"), "Yes", "No")

    Αυτός ο τύπος πηγαίνει στο Β2 ή σε οποιοδήποτε άλλο κελί στη σειρά 2 και στη συνέχεια μπορείτε να τον σύρετε προς τα κάτω σε όσα κελιά χρειάζεστε:

    Αυτή η λύση μπορεί επίσης να χρησιμοποιηθεί για τον εντοπισμό συμβολοσειρές ενός συγκεκριμένου μοτίβου Αν υποθέσουμε ότι μόνο τα αναγνωριστικά που αποτελούνται από 2 ομάδες των 2 χαρακτήρων που χωρίζονται με παύλα είναι έγκυρα, μπορείτε να χρησιμοποιήσετε τη συμβολοσειρά μπαλαντέρ "??-???" για να τα αναγνωρίσετε:

    =IF(COUNTIF(A2, "??-;;;"), "Valid", "")

    Πώς λειτουργεί αυτή η φόρμουλα:

    Για τον λογικό έλεγχο του IF, χρησιμοποιούμε τη συνάρτηση COUNTIF που μετράει τον αριθμό των κελιών που ταιριάζουν με την καθορισμένη συμβολοσειρά μπαλαντέρ. Δεδομένου ότι η περιοχή κριτηρίων είναι ένα μόνο κελί (Α2), το αποτέλεσμα είναι πάντα 1 (η αντιστοιχία βρέθηκε) ή 0 (η αντιστοιχία δεν βρέθηκε). Δεδομένου ότι το 1 ισοδυναμεί με TRUE και το 0 με FALSE, ο τύπος επιστρέφει "Valid" (value_if_true) όταν η μέτρηση είναι 1 και μια κενή συμβολοσειρά (value_if_false) όταν τοcount είναι 0.

    IF ISNUMBER Τύπος αναζήτησης για μερικές αντιστοιχίες

    Ένας άλλος τρόπος για να αναγκάσετε το Excel IF να λειτουργήσει για μερική αντιστοίχιση κειμένου είναι να συμπεριλάβετε είτε τη συνάρτηση FIND είτε τη συνάρτηση SEARCH στη λογική δοκιμή. Η διαφορά είναι ότι η FIND είναι ευαίσθητη στην πεζότητα, ενώ η SEARCH όχι.

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

    Χωρίς ευαισθησία στην πεζότητα τύπος για μερική αντιστοίχιση:

    IF(ISNUMBER(SEARCH(" κείμενο ", κύτταρο )), value_if_true, value_if_false)

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

    IF(ISNUMBER(FIND(" κείμενο ", κύτταρο )), value_if_true, value_if_false)

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

    Για παράδειγμα, για τον εντοπισμό αναγνωριστικών που περιέχουν "A" ή "a", ο τύπος είναι:

    =IF(ISNUMBER(SEARCH("A", A2)), "Ναι", "Όχι")

    Για να αναζητήσετε μόνο ένα κεφαλαίο "A" και να αγνοήσετε το "a", ο τύπος είναι:

    =IF(ISNUMBER(FIND("A", A2)), "Ναι", "Όχι")

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

    Πώς λειτουργεί αυτή η φόρμουλα:

    Στην καρδιά του τύπου, υπάρχει ένας συνδυασμός ISNUMBER και SEARCH (ή FIND):

    ISNUMBER(SEARCH("A", A2))

    Η συνάρτηση SEARCH αναζητά το καθορισμένο κείμενο ("A" σε αυτό το παράδειγμα) και επιστρέφει τη θέση του μέσα σε μια συμβολοσειρά στο A2. Εάν το κείμενο δεν βρεθεί, επιστρέφεται ένα σφάλμα #VALUE. Καθώς τόσο η SEARCH όσο και η FIND έχουν σχεδιαστεί για να εκτελούν μια αντιστοίχιση τύπου "το κελί περιέχει", τα σύμβολα μπαλαντέρ δεν είναι πραγματικά απαραίτητα σε αυτή την περίπτωση.

    Η συνάρτηση ISNUMBER μετατρέπει έναν αριθμό σε TRUE και οποιαδήποτε άλλη τιμή, συμπεριλαμβανομένου του σφάλματος, σε FALSE. Η λογική τιμή πηγαίνει απευθείας στον λογικό έλεγχο της IF. Στην περίπτωσή μας, η A2 περιέχει "A", οπότε η ISNUMBER επιστρέφει TRUE:

    IF(TRUE, "Yes", "No")

    Ως αποτέλεσμα, το IF επιστρέφει την τιμή που έχει οριστεί για το value_if_true επιχείρημα, το οποίο είναι "Ναι".

    Excel IF OR δήλωση με μπαλαντέρ

    Πρέπει να εντοπίσετε κελιά που περιέχουν μια από τις συμβολοσειρές κειμένου μπαλαντέρ; Σε αυτή την περίπτωση, μπορείτε να συνδυάσετε την κλασική δήλωση IF OR με τον τύπο COUNTIF ή ISNUMBER SEARCH που συζητήθηκε παραπάνω.

    Για παράδειγμα, για να αναζητήσετε το "aa" Ή το "bb" στο Α2 αγνοώντας την πεζότητα των γραμμάτων και να επιστρέψετε "Ναι" αν βρεθεί κάποιο από τα δύο, χρησιμοποιήστε έναν από αυτούς τους τύπους:

    =IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")

    ή

    =IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")

    Η πρόσθεση δύο συναρτήσεων COUNTIF θα λειτουργήσει επίσης. Στην περίπτωση αυτή, το σύμβολο συν λειτουργεί όπως ο τελεστής OR:

    =IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")

    Αντί να κωδικοποιείτε σκληρά τις συμβολοσειρές μπαλαντέρ στον τύπο, μπορείτε να τις εισάγετε σε ξεχωριστά κελιά, π.χ. D2 και F2, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Παρατηρήστε ότι οι αναφορές αυτών των κελιών είναι κλειδωμένες με το σύμβολο $, ώστε ο τύπος να αντιγράφεται σωστά στα παρακάτω κελιά:

    =IF(OR(COUNTIF(A2, "*"&$D$2& "*"), COUNTIF(A2, "*"&$F$2& "*")), "Ναι", "")

    Οι παραπάνω τύποι λειτουργούν καλά για 2 μερικές αντιστοιχίες, αλλά αν ψάχνετε για 3 ή περισσότερες, θα γίνουν πολύ μακροσκελείς. Σε αυτή την περίπτωση, είναι λογικό να προσεγγίσετε την εργασία διαφορετικά:

    Παρέχετε πολλαπλές υποομάδες στη συνάρτηση SEARCH σε μια σταθερά πίνακα, μετρήστε τους αριθμούς που επιστρέφονται και ελέγξτε αν το αποτέλεσμα είναι μεγαλύτερο από το μηδέν (που σημαίνει ότι βρέθηκε τουλάχιστον μία από τις υποομάδες):

    =IF(COUNT(SEARCH({"aa", "bb"}, A2))>0, "Yes", "")

    Με αυτόν τον τρόπο, θα έχετε ακριβώς το ίδιο αποτέλεσμα με μια πιο συμπαγή φόρμουλα:

    Τύπος του Excel IF AND με μπαλαντέρ

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

    Ας υποθέσουμε ότι θέλετε να εντοπίσετε τα κελιά της στήλης A που περιέχουν και το "b" ΚΑΙ το "2". Για να το κάνετε αυτό, χρησιμοποιήστε "*b*" και "*2*" για τα κριτήρια COUNTIFS και A2 για την περιοχή κριτηρίων:

    =IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Ναι", "")

    Ένας άλλος τρόπος είναι να χρησιμοποιήσετε τον τύπο IF AND σε συνδυασμό με την ISNUMBER SEARCH:

    =IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")

    Παρόλο που δεν περιλαμβάνουμε χαρακτήρες μπαλαντέρ σε αυτόν τον τύπο, λειτουργεί σαν να ψάχνουμε για δύο συμβολοσειρές μπαλαντέρ ("*b*" και "*2*") στο ίδιο κελί.

    Φυσικά, τίποτα δεν σας εμποδίζει να εισάγετε τις τιμές αναζήτησης σε προκαθορισμένα κελιά, D2 και F2 στην περίπτωσή μας, και να παρέχετε τις αναφορές των κελιών στον τύπο:

    =IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")

    Αν προτιμάτε να χρησιμοποιείτε πιο συμπαγείς τύπους όπου είναι δυνατόν, τότε ίσως σας αρέσει περισσότερο η προσέγγιση της σταθεράς του πίνακα. Ο τύπος IF COUNT SEARCH μοιάζει πολύ με τον τύπο του προηγούμενου παραδείγματος, αλλά επειδή αυτή τη φορά πρέπει να εμφανιστούν και τα δύο υποσύνολα στην Α2, ελέγχουμε αν ο αριθμός είναι ίσος με 2:

    =IF(COUNT(SEARCH({"b", "2"}, A2))=2, "Yes", "")

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

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

    Παραδείγματα τύπων μπαλαντέρ του Excel IF (.xlsx αρχείο)

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