Ασαφής αντιστοίχιση VLOOKUP στο Excel (3 γρήγοροι τρόποι)

  • Μοιραστείτε Αυτό
Hugh West

Σήμερα θα μάθουμε πώς να χρησιμοποιούμε VLOOKUP για να ψάξετε για Ασαφής αγώνας στο Excel.

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

Ας συζητήσουμε λοιπόν πώς μπορείτε να χρησιμοποιήσετε το VBA VLOOKUP συνάρτηση του Excel για αναζήτηση Ασαφής αγώνας .

Εισαγωγή στο Fuzzy Match

A Ασαφής αγώνας είναι ένας τύπος μερικό ταίριασμα.

Σε αυτούς τους τύπους αντιστοιχιών, το ένα κείμενο δεν ταιριάζει πλήρως με το άλλο κείμενο. Αλλά τα σημαντικά τμήματα του κειμένου ταιριάζουν με το άλλο κείμενο.

Στο συγκεκριμένο παράδειγμα, το βιβλίο "Η ιστορία της Ινδίας κατά τη διάρκεια του Παγκόσμιου Πολέμου" περιέχει τρία σημαντικά τμήματα: Ιστορία , Ινδία , και Παγκόσμιος Πόλεμος .

Επομένως, όλα τα βιβλία που περιέχουν είτε μία είτε περισσότερες από μία από αυτές τις ενότητες θα ταιριάζουν ασαφώς με το βιβλίο.

Έτσι, οι ασαφείς αντιστοιχίες είναι:

  • Η ιστορία του Β' Παγκοσμίου Πολέμου
  • Ιστορία της Αρχαίας Ελλάδας
  • Παγκόσμιος Πόλεμος: Αιτίες και επιπτώσεις
  • Ο πολιτισμός του Ινδού: Μια αρχαία ιστορία
  • Η Ινδία κερδίζει την ελευθερία
  • Αδόλφος Χίτλερ: Πριν και μετά τον Παγκόσμιο Πόλεμο
  • Η ανακάλυψη της Ινδίας

Κατεβάστε το βιβλίο ασκήσεων

VLOOKUP Fuzzy Matching.xlsm

3 προσεγγίσεις για την ασαφή αντιστοίχιση VLOOKUP στο Excel

Εδώ έχουμε ένα σύνολο δεδομένων με το Ονόματα κάποιων βιβλίων ενός βιβλιοπωλείου που ονομάζεται.

Στόχος μας σήμερα είναι να χρησιμοποιήσουμε το VLOOKUP συνάρτηση του Excel για να δημιουργήσει κάποια Ασαφείς αντιστοιχίες Ας συζητήσουμε για 3 διαφορετικές προσεγγίσεις.

1. Ασαφής αντιστοίχιση VLOOKUP με χρήση μπαλαντέρ (Ολόκληρη αντιστοίχιση Lookup_Value)

  • Πρώτα απ' όλα, θα δημιουργήσουμε μερικές ασαφείς αντιστοιχίες χρησιμοποιώντας τον χαρακτήρα μπαλαντέρ το Αστερίσκος (*) Αλλά να θυμάστε, πρέπει να ταιριάξετε ολόκληρο το σύμβολο lookup_value σε αυτή τη μέθοδο, όχι τα ξεχωριστά μέρη του lookup_value .

Για παράδειγμα, μπορούμε να βρούμε ένα βιβλίο που περιέχει το κείμενο "Δεύτερος Παγκόσμιος Πόλεμος" με αυτόν τον τρόπο.

Μόνο τα βιβλία που έχουν το πλήρες κείμενο "Δεύτερος Παγκόσμιος Πόλεμος" θα ταιριάζει.

Ο τύπος είναι απλός. Αστερίσκος (*) σύμβολο και στα δύο άκρα του lookup_value κείμενο.

Ο τύπος θα είναι:

=VLOOKUP("*Δεύτερος Παγκόσμιος Πόλεμος*",B5:B22,1,FALSE)

  • Μπορείτε επίσης να χρησιμοποιήσετε μια αναφορά κελιού στη θέση του αρχικού κειμένου. Χρησιμοποιήστε την εντολή Ampersand (&) για να τα συγχωνεύσετε σε ένα ενιαίο κείμενο, όπως αυτό:

=VLOOKUP("*"&D5&"*",B5:B22,1,FALSE)

Για να μάθετε περισσότερα για VLOOKUP χρησιμοποιώντας μπαλαντέρ, επισκεφθείτε την ιστοσελίδα αυτό το άρθρο .

Διαβάστε περισσότερα: Πώς να εκτελέσετε το VLOOKUP με Wildcard στο Excel (2 μέθοδοι)

2. Ασαφής αντιστοίχιση με χρήση της VBA

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

Τώρα θα εξάγουμε έναν τύπο χρησιμοποιώντας ένα Κώδικας VBA που θα εκπληρώσει το σκοπό μας σχεδόν ολοκληρωτικά.

  • Αρχικά, ανοίξτε ένα VBA παράθυρο και εισάγετε τα εξής VBA κώδικα σε μια νέα ενότητα:

Κωδικός :

 Function FUZZYMATCH(str As String, rng As Range) str = LCase(str) Dim Remove_1(5) As Variant Remove_1(0) = "," Remove_1(1) = "." Remove_1(2) = ":" Remove_1(3) = "-" Remove_1(4) = ";" Remove_1(5) = "?" Dim Rem_Str_1 As String Rem_Str_1 = str Dim rem_count_1 As Variant For Each rem_count_1 In Remove_1 Rem_Str_1 = Replace(Rem_Str_1, rem_count_1, "") Next rem_count_1 Words = Split(Rem_Str_1) Dim i AsVariant For i = 0 To UBound(Words) If Len(Words(i)) = 1 Or Len(Words(i)) = 2 Then Words(i) = Replace(Words(i), Words(i), " bt ") End If Next i Dim Final_Remove(26) As Variant Final_Remove(0) = "the" Final_Remove(1) = "and" Final_Remove(2) = "but" Final_Remove(3) = "with" Final_Remove(4) = "into" Final_Remove(5) = "before" Final_Remove(6) = "after" Final_Remove(7) = "beyond" Final_Remove(8) ="εδώ" Final_Remove(9) = "εκεί" Final_Remove(10) = "του" Final_Remove(11) = "της" Final_Remove(12) = "του" Final_Remove(13) = "μπορεί" Final_Remove(14) = "θα μπορούσε" Final_Remove(15) = "μπορεί" Final_Remove(16) = "μπορεί" Final_Remove(17) = "θα" Final_Remove(18) = "θα έπρεπε" Final_Remove(19) = "θα" Final_Remove(20) = "θα" Final_Remove(21) = "αυτό" Final_Remove(22) = "αυτό" Final_Remove(23) = "έχουν"Final_Remove(24) = "έχει" Final_Remove(25) = "είχε" Final_Remove(26) = "κατά τη διάρκεια" Dim w As Variant Dim ww As Variant For w = 0 To UBound(Words) For Each ww In Final_Remove If Words(w) = ww Then Words(w) = Replace(Words(w), Words(w), " bt ") Exit For ' End If Next ww Next w Dim Lookup As Variant Dim x As Integer x = rng.Rows.count ReDim Lookup(x - 1) Dim j As Variant j = 0 Dim k As Variant For Each kIn rng Lookup(j) = k j = j + 1 Next k Dim Lower As Variant ReDim Lower(UBound(Lookup)) Dim u As Variant For u = 0 To UBound(Lookup) Lower(u) = LCase(Lookup(u)) Next u Dim out As Variant ReDim out(UBound(Lookup), 0) Dim count As Integer co = 0 mark = 0 Dim m As Variant For m = 0 To UBound(Lower) Dim n As Variant For Each n In Words Dim o As Variant For o = 1 To Len(Lower(m)) If Mid(Lower(m), o,Len(n)) = n Then out(co, 0) = Lookup(m) co = co + 1 mark = mark + 1 Exit For End If Next o If mark> 0 Then Exit For End If Next n mark = 0 Next m Dim output As Variant ReDim output(co - 1, 0) Dim z As Variant For z = 0 To co - 1 output(z, 0) = out(z, 0) Next z FUZZYMATCH = output End Function 

Αυτός ο κώδικας δημιουργεί μια συνάρτηση που ονομάζεται FUZZYMATCH .

  • Τώρα, αποθηκεύστε το ως εξής τα βήματα της μεθόδου 3 του παρόντος άρθρου .

Αυτό το FUZZYMATCH συνάρτηση βρίσκει όλα τα Ασαφείς αντιστοιχίες ενός Αξία αναζήτησης άμεσα.

Το Σύνταξη αυτού FUZZYMATCH λειτουργία είναι:

=FUZZYMATCH(lookup_value,lookup_range)

Για να μάθετε το Ασαφείς αντιστοιχίες του βιβλίου "Η ιστορία της Ινδίας κατά τη διάρκεια του Παγκόσμιου Πολέμου" , πληκτρολογήστε αυτό lookup_value σε ένα κελί ( D5 σε αυτό το παράδειγμα) και εισάγετε αυτόν τον τύπο σε ένα άλλο κελί:

=FUZZYMATCH(D5,B5:B22)

Βλέπετε, ανακαλύψαμε όλες τις ασαφείς αντιστοιχίες του βιβλίου "Η ιστορία της Ινδίας κατά τη διάρκεια του Παγκόσμιου Πολέμου"

  • Εδώ D5 είναι η αναφορά κελιού του lookup_value ("The History of India during the World War").
  • B5:B22 είναι η lookup_range .

Ας μάθουμε το Ασαφείς αντιστοιχίες ενός άλλου βιβλίου με τίτλο "Ένα σημειωματάριο των αιτιών πίσω από το έγκλημα των μεγάλων πόλεων" .

Εισάγετε αυτό lookup_value σε ένα κελί ( D5 σε αυτό το παράδειγμα) και εισάγετε αυτόν τον τύπο σε ένα άλλο κελί:

=FUZZYMATCH(D5,B5:B22)

💡 Επεξήγηση του τύπου

  • Το FUZZYMATCH είναι η συνάρτηση που κατασκευάσαμε στο VBA Παίρνει μια συμβολοσειρά που ονομάζεται lookup_value και ένα εύρος κελιών που ονομάζεται lookup_range και επιστρέφει έναν πίνακα όλων των Ασαφείς αντιστοιχίες της συμβολοσειράς.
  • Επομένως FUZZYMATCH(D5,B5:B22) επιστρέφει έναν πίνακα όλων των Ασαφείς αντιστοιχίες της συμβολοσειράς στο κελί D5 από την περιοχή B5:B22 .

Διαβάστε περισσότερα: Πώς να VLOOKUP Μερικό κείμενο στο Excel (με εναλλακτικές λύσεις)

Παρόμοιες αναγνώσεις

  • Το VLOOKUP δεν λειτουργεί (8 λόγοι και λύσεις)
  • Συνάρτηση INDEX MATCH vs VLOOKUP (9 παραδείγματα)
  • Χρήση VLOOKUP με πολλαπλά κριτήρια στο Excel (6 μέθοδοι + εναλλακτικές λύσεις)
  • Excel VLOOKUP για την επιστροφή πολλαπλών τιμών κάθετα
  • VLOOKUP και επιστροφή όλων των αντιστοιχιών στο Excel (7 τρόποι)

3. Ασαφής αντιστοίχιση με χρήση του Fuzzy Lookup Add-in του Excel

Το Microsoft Excel παρέχει ένα Πρόσθετο που ονομάζεται Fuzzy Lookup. Χρησιμοποιώντας το, μπορείτε να αντιστοιχίσετε δύο πίνακες για Ασαφής αναζήτηση .

  • Αρχικά, κατεβάστε και εγκαταστήστε το Πρόσθετο από αυτό σύνδεσμος .
  • Μετά την επιτυχή λήψη και εγκατάστασή του, θα βρείτε το Fuzzy Lookup Add-in στη γραμμή εργαλείων του Excel.

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

  • Εδώ έχω δύο πίνακες που περιέχουν δύο λίστες βιβλίων από δύο βιβλιοπωλεία που ονομάζονται Βιβλιοπωλείο Robert και Βιβλιοπωλείο Martin .
  • Στη συνέχεια, μεταβείτε στο Fuzzy Αναζήτηση tab> κλικ Ασαφής αναζήτηση στη γραμμή εργαλείων του Excel.

  • Ως εκ τούτου, θα λάβετε ένα Ασαφής αναζήτηση πίνακα που δημιουργήθηκε στον πλαϊνό πίνακα του βιβλίου εργασίας σας.

Στο Αριστερό τραπέζι και Δεξί τραπέζι επιλέξτε τα ονόματα των δύο πινάκων.

Για χάρη αυτού του παραδείγματος, επιλέξτε Robert και Martin .

Στη συνέχεια, στο Στήλες επιλέξτε τα ονόματα των στηλών κάθε πίνακα.

Στο Στήλη αγώνα επιλέξτε τον τύπο αντιστοιχίας που θέλετε μεταξύ των δύο στηλών. Fuzzy Match, επιλέξτε Προεπιλογή .

  • Τέλος, κάντε κλικ στο Go Θα λάβετε την αντίστοιχη αναλογία των πινάκων σε έναν νέο πίνακα.

Διαβάστε περισσότερα: VLOOKUP για να συγκρίνετε δύο λίστες στο Excel (2 ή περισσότεροι τρόποι)

Συμπέρασμα

Χρησιμοποιώντας αυτές τις μεθόδους, μπορείτε να χρησιμοποιήσετε το VLOOKUP συνάρτηση του Excel για αναζήτηση Fuzzy Match. Παρόλο που αυτές οι μέθοδοι δεν είναι 100% αποτελεσματικές, είναι πολύ χρήσιμες. Έχετε ερωτήσεις; Μη διστάσετε να τις θέσετε στο πλαίσιο σχολίων. Μην ξεχάσετε να μοιραστείτε αν έχετε καλύτερες μεθόδους. Μείνετε συνδεδεμένοι με το ExcelWIKI .

Ο Hugh West είναι ένας εξαιρετικά έμπειρος εκπαιδευτής και αναλυτής του Excel με πάνω από 10 χρόνια εμπειρίας στον κλάδο. Είναι κάτοχος πτυχίου Λογιστικής και Χρηματοοικονομικής και μεταπτυχιακού στη Διοίκηση Επιχειρήσεων. Ο Hugh έχει πάθος για τη διδασκαλία και έχει αναπτύξει μια μοναδική προσέγγιση διδασκαλίας που είναι εύκολο να ακολουθηθεί και να κατανοηθεί. Οι εξειδικευμένες γνώσεις του στο Excel έχουν βοηθήσει χιλιάδες φοιτητές και επαγγελματίες παγκοσμίως να βελτιώσουν τις δεξιότητές τους και να διαπρέψουν στην καριέρα τους. Μέσω του ιστολογίου του, ο Hugh μοιράζεται τις γνώσεις του με τον κόσμο, προσφέροντας δωρεάν μαθήματα Excel και διαδικτυακή εκπαίδευση για να βοηθήσει άτομα και επιχειρήσεις να αξιοποιήσουν πλήρως τις δυνατότητές τους.