VLOOKUP Fuzzy Match dans Excel (3 façons rapides)

  • Partage Ça
Hugh West

Aujourd'hui, nous allons apprendre à utiliser VLOOKUP pour rechercher Correspondance floue dans Excel.

Lorsque nous travaillons avec des ensembles de données plus importants, nous essayons souvent de filtrer les valeurs similaires. L'un de ces types de correspondance est appelé Correspondance floue où les valeurs ne sont pas exactement les mêmes, mais elles sont quand même appariées sur la base de leur similarité.

Donc, discutons de la manière dont vous pouvez utiliser la VBA VLOOKUP fonction d'Excel pour rechercher Correspondance floue .

Introduction à la correspondance floue

A Correspondance floue est un type de correspondance partielle.

Dans ce type de correspondance, un texte ne correspond pas entièrement à l'autre texte, mais les sections importantes du texte correspondent à l'autre texte.

Dans l'exemple donné, le livre "L'histoire de l'Inde pendant la guerre mondiale" contient trois sections importantes : Histoire , Inde et Guerre mondiale .

Par conséquent, tous les livres qui contiennent une ou plusieurs de ces sections correspondront de manière floue au livre.

Donc, les correspondances floues sont :

  • L'histoire de la Seconde Guerre mondiale
  • Histoire de la Grèce antique
  • La guerre mondiale : causes et effets
  • La civilisation de l'Indus : une histoire ancienne
  • L'Inde gagne la liberté
  • Adolf Hitler : avant et après la guerre mondiale
  • La découverte de l'Inde

Télécharger le cahier d'exercices

VLOOKUP Appariement flou.xlsm

3 approches pour la correspondance floue VLOOKUP dans Excel

Ici nous avons un ensemble de données avec le Noms de quelques livres d'une librairie appelée.

Notre objectif aujourd'hui est d'utiliser le VLOOKUP d'Excel pour générer des Correspondances floues Discutons de trois approches différentes.

1. correspondance floue VLOOKUP utilisant des caractères génériques (correspondance entière Lookup_Value)

  • Tout d'abord, nous allons générer quelques correspondances floues en utilisant le caractère générique le Astérisque (*) Mais n'oubliez pas que vous devez faire correspondre l'ensemble du symbole valeur de la recherche dans cette méthode, et non les parties distinctes de la valeur de la recherche .

Par exemple, nous pouvons trouver un livre contenant le texte "Seconde Guerre mondiale" de cette façon.

Seulement les livres ayant le texte complet "Seconde Guerre mondiale" correspondra.

La formule est simple. Placez un Astérisque (*) sur les deux extrémités du valeur de la recherche texte.

La formule sera :

=VLOOKUP("*Seconde Guerre mondiale*",B5:B22,1,FALSE)

  • Vous pouvez également utiliser une référence de cellule à la place du texte d'origine en utilisant la fonction Esperluette (& ;) pour les fusionner en un seul texte, comme ceci :

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

Pour en savoir plus sur VLOOKUP en utilisant des caractères de remplacement, visitez cet article .

Lire la suite : Comment effectuer un VLOOKUP avec joker dans Excel (2 méthodes)

2. correspondance floue à l'aide de VBA

La méthode décrite dans la section précédente répond partiellement à notre objectif, mais pas complètement.

Nous allons maintenant dériver une formule utilisant un Code VBA qui remplira presque complètement notre objectif.

  • Dans un premier temps, ouvrez un VBA et insérez le texte suivant VBA dans un nouveau module :

Code :

 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) = "ici" Final_Remove(10) = "son" Final_Remove(11) = "elle" Final_Remove(12) = "lui" Final_Remove(13) = "peut" Final_Remove(14) = "pourrait" Final_Remove(15) = "peut" Final_Remove(16) = "pourrait" Final_Remove(17) = "sera" Final_Remove(18) = "devrait" Final_Remove(19) = "sera" Final_Remove(20) = "serait" Final_Remove(21) = "ceci" Final_Remove(22) = "cela" Final_Remove(23) = "ont".Final_Remove(24) = "has" Final_Remove(25) = "had" Final_Remove(26) = "during" 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 Alors 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 

Ce code construit une fonction appelée FUZZYMATCH .

  • Maintenant, enregistrez-le comme suit les étapes de la méthode 3 de cet article .

Ce site FUZZYMATCH trouve toutes les Correspondances floues d'un Valeur de recherche directement.

Le site Syntaxe de cette FUZZYMATCH la fonction est :

=FUZZYMATCH(lookup_value,lookup_range)

Pour connaître le Correspondances floues du livre "L'histoire de l'Inde pendant la guerre mondiale" , entrez ceci valeur de la recherche dans une cellule ( D5 dans cet exemple) et saisissez cette formule dans une autre cellule :

=FUZZYMATCH(D5,B5:B22)

Vous voyez, nous avons trouvé toutes les correspondances floues du livre. "L'histoire de l'Inde pendant la guerre mondiale"

  • Ici D5 est la référence de la cellule de la lookup_value ("L'histoire de l'Inde pendant la guerre mondiale").
  • B5:B22 est le gamme_consultative .

Découvrons le Correspondances floues d'un autre livre intitulé "Un carnet des causes derrière le crime des grandes villes" .

Entrez ceci valeur de la recherche dans une cellule ( D5 dans cet exemple) et saisissez cette formule dans une autre cellule :

=FUZZYMATCH(D5,B5:B22)

💡 Explication de la formule

  • Le site FUZZYMATCH est la fonction que nous avons construite dans VBA Il prend une chaîne appelée valeur de la recherche et une gamme de cellules appelée gamme_consultative et renvoie un tableau de tous les Correspondances floues de la chaîne.
  • Par conséquent, FUZZYMATCH(D5,B5:B22) renvoie un tableau de tous les Correspondances floues de la chaîne de caractères dans la cellule D5 de la gamme B5:B22 .

Lire la suite : Comment faire un VLOOKUP d'un texte partiel dans Excel (avec des alternatives)

Lectures similaires

  • VLOOKUP ne fonctionne pas (8 raisons & ; Solutions)
  • Fonction INDEX MATCH vs VLOOKUP (9 exemples)
  • Utiliser VLOOKUP avec plusieurs critères dans Excel (6 méthodes + alternatives)
  • Excel VLOOKUP pour renvoyer plusieurs valeurs verticalement
  • VLOOKUP et retour de toutes les correspondances dans Excel (7 façons)

3. correspondance floue à l'aide du module complémentaire Fuzzy Lookup d'Excel

Microsoft Excel fournit un Add-in appelé Fuzzy Lookup. En l'utilisant, vous pouvez faire correspondre deux tables pour Recherche floue .

  • Dans un premier temps, téléchargez et installez le Add-in de ce lien .
  • Après l'avoir téléchargé et installé avec succès, vous trouverez le complément Fuzzy Lookup dans votre barre d'outils Excel.

  • Disposez ensuite les ensembles de données dans deux tableaux que vous voulez faire correspondre.

  • Ici, j'ai deux tableaux contenant deux listes de livres provenant de deux librairies appelées Librairie Robert et Librairie Martin .
  • Ensuite, allez dans le Fuzzy Consulter le site tab> ; cliquez Recherche floue dans la barre d'outils Excel.

  • Ainsi, vous obtiendrez un Recherche floue créé dans le panneau latéral de votre classeur.

Dans le Table gauche et Table droite options, choisissez les noms des deux tables.

Pour les besoins de cet exemple, choisissez Robert et Martin .

Ensuite, dans le Colonnes section, choisissez les noms des colonnes de chaque tableau.

Dans le Colonne de correspondance sélectionnez le type de correspondance que vous souhaitez entre les deux colonnes. Pour Fuzzy Match, sélectionnez Défaut .

  • Enfin, cliquez sur Allez sur Vous obtiendrez le rapport de correspondance des tables dans une nouvelle table.

Lire la suite : VLOOKUP pour comparer deux listes dans Excel (2 ou plusieurs façons)

Conclusion

Grâce à ces méthodes, vous pouvez utiliser le VLOOKUP fonction d'Excel pour rechercher Fuzzy Match. Bien que ces méthodes ne soient pas efficaces à 100 %, elles sont tout de même très utiles. Vous avez des questions ? N'hésitez pas à les poser dans la boîte de commentaires. N'oubliez pas de partager si vous avez de meilleures méthodes. Restez connecté avec ExcelWIKI .

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.