VLOOKUP Coincidencia Difusa en Excel (3 Maneras Rápidas)

  • Compartir Este
Hugh West

Hoy vamos a aprender a utilizar VLOOKUP para buscar Partido difuso en Excel.

Cuando trabajamos con grandes conjuntos de datos, a menudo intentamos filtrar valores similares. Uno de estos tipos de coincidencias se denomina Partido difuso donde los valores no son exactamente los mismos, pero siguen coincidiendo en función de su similitud.

Hablemos entonces de cómo utilizar el VLOOKUP VBA función de Excel para buscar Partido difuso .

Introducción a Fuzzy Match

A Partido difuso es un tipo de coincidencia parcial.

En este tipo de coincidencias, un texto no coincide totalmente con el otro, pero las secciones importantes del texto sí coinciden con el otro.

En el ejemplo dado, el libro "La historia de la India durante la Guerra Mundial" contiene tres secciones importantes: Historia , India y Guerra Mundial .

Por lo tanto, todos los libros que contengan una o más de estas secciones coincidirán de forma difusa con el libro.

Entonces, las coincidencias difusas son:

  • Historia de la Segunda Guerra Mundial
  • Historia de la Antigua Grecia
  • Guerra Mundial: causas y efectos
  • La civilización del Indo: una historia antigua
  • India gana la libertad
  • Adolf Hitler: antes y después de la Guerra Mundial
  • El descubrimiento de la India

Descargar el cuaderno de prácticas

VLOOKUP Fuzzy Matching.xlsm

3 Enfoques para VLOOKUP Fuzzy Match en Excel

Aquí tenemos un conjunto de datos con el valor Nombres de unos libros de una librería llamada.

Nuestro objetivo hoy es utilizar el VLOOKUP de Excel para generar Coincidencias difusas Vamos a discutir sobre 3 enfoques diferentes.

1. VLOOKUP Fuzzy Match Using Wildcards (Coincidencia completa de Lookup_Value)

  • En primer lugar, generaremos algunas coincidencias difusas utilizando el carácter comodín the Asterisco (*) Pero recuerda, tienes que hacer coincidir todo el símbolo buscar_valor en este método, no las partes separadas del buscar_valor .

Por ejemplo, podemos encontrar un libro que contenga el texto "Segunda Guerra Mundial" de esta manera.

Sólo los libros con el texto completo "Segunda Guerra Mundial" coincidirá.

La fórmula es sencilla. Asterisco (*) en ambos extremos del buscar_valor texto.

La fórmula será:

=VLOOKUP("*Segunda Guerra Mundial*",B5:B22,1,FALSE)

  • También puede utilizar una referencia de celda en lugar del texto original. Utilice la tecla Ampersand (&) para fusionarlos en un solo texto. Así:

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

Para saber más sobre VLOOKUP utilizando comodines, visite este artículo .

Más información: Cómo Realizar VLOOKUP con Comodín en Excel (2 Métodos)

2. Comparación difusa con VBA

El método de la sección anterior cumple nuestro propósito parcialmente, pero no al máximo.

Ahora derivaremos una fórmula utilizando Código VBA que cumplirá nuestro propósito casi por completo.

  • Al principio, abra un VBA e inserte lo siguiente VBA en un nuevo módulo:

Código :

 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) = "el" Final_Remove(1) = "y" Final_Remove(2) = "pero" Final_Remove(3) = "con" Final_Remove(4) = "en" Final_Remove(5) = "antes" Final_Remove(6) = "después" Final_Remove(7) = "más allá" Final_Remove(8) ="aquí" Final_Remove(9) = "allí" Final_Remove(10) = "su" Final_Remove(11) = "ella" Final_Remove(12) = "él" Final_Remove(13) = "puede" Final_Remove(14) = "podría" Final_Remove(15) = "puede" Final_Remove(16) = "podría" Final_Remove(17) = "deberá" Final_Remove(18) = "debería" Final_Remove(19) = "hará" Final_Remove(20) = "haría" Final_Remove(21) = "esto" Final_Remove(22) = "eso" Final_Remove(23) = "tener"Final_Remove(24) = "tiene" Final_Remove(25) = "tenía" Final_Remove(26) = "durante" 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 Entonces 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 

Este código construye una función llamada FUZZYMATCH .

  • Ahora, guárdelo de la siguiente manera los pasos del método 3 de este artículo .

Este FUZZYMATCH averigua todos los Coincidencias difusas de un Valor de búsqueda directamente.

En Sintaxis de este FUZZYMATCH función es:

=FUZZYMATCH(valor_buscado,rango_buscado)

Para conocer el Coincidencias difusas del libro "La historia de la India durante la Guerra Mundial" introduzca esto buscar_valor en una celda ( D5 en este ejemplo) e introduce esta fórmula en otra celda:

=FUZZYMATCH(D5,B5:B22)

Mira, hemos encontrado todos los Fuzzy Matches del libro "La historia de la India durante la Guerra Mundial"

  • Aquí D5 es la referencia de la celda lookup_value ("La historia de la India durante la Guerra Mundial").
  • B5:B22 es el buscar_rango .

Averigüemos el Coincidencias difusas de otro libro titulado "Cuaderno de las causas de la delincuencia de las grandes ciudades" .

Introduzca este buscar_valor en una celda ( D5 en este ejemplo) e introduce esta fórmula en otra celda:

=FUZZYMATCH(D5,B5:B22)

💡 Explicación de la fórmula

  • En FUZZYMATCH es la función que construimos en VBA Toma una cadena llamada buscar_valor y un rango de celdas llamado buscar_rango y devuelve una matriz con todos los Coincidencias difusas de la cadena.
  • Por lo tanto FUZZYMATCH(D5,B5:B22) devuelve un array con todos los Coincidencias difusas de la cadena en la celda D5 de la gama B5:B22 .

Más información: Cómo VLOOKUP Texto Parcial en Excel (Con Alternativas)

Lecturas similares

  • VLOOKUP No Funciona (8 Razones & Soluciones)
  • Función INDEX MATCH vs VLOOKUP (9 Ejemplos)
  • Utilizar VLOOKUP con Múltiples Criterios en Excel (6 Métodos + Alternativas)
  • Excel VLOOKUP para Devolver Múltiples Valores Verticalmente
  • VLOOKUP y Devuelve Todas las Coincidencias en Excel (7 Formas)

3. Comparación difusa mediante el complemento Fuzzy Lookup de Excel

Microsoft Excel proporciona un Complemento llamada Fuzzy Lookup. Utilizándola, puede hacer coincidir dos tablas para Búsqueda difusa .

  • En primer lugar, descargue e instale el Complemento de este enlace .
  • Tras descargarlo e instalarlo correctamente, encontrará el complemento Búsqueda difusa en su barra de herramientas de Excel.

  • A continuación, organice los conjuntos de datos en dos tablas que desee hacer coincidir.

  • Aquí tengo dos tablas que contienen dos listas de libros de dos librerías llamadas Librería Robert y Librería Martin .
  • A continuación, vaya a la página Difuso Búsqueda tab> click Búsqueda difusa en la barra de herramientas de Excel.

  • Por lo tanto, obtendrá un Búsqueda difusa tabla creada en el panel lateral de su libro de trabajo.

En el Mesa izquierda y Mesa Derecha elija los nombres de las dos tablas.

Para este ejemplo, elija Robert y Martin .

Luego, en el Columnas elija los nombres de las columnas de cada tabla.

En el Columna de partidos seleccione el tipo de coincidencia que desea entre las dos columnas. Para Fuzzy Match, seleccione Por defecto .

  • Por último, haga clic en Vaya a Obtendrá la relación de correspondencia de las tablas en una nueva tabla.

Más información: VLOOKUP Para Comparar Dos Listas en Excel (2 o Más Maneras)

Conclusión

Con estos métodos, puede utilizar el VLOOKUP función de Excel para buscar Fuzzy Match. Aunque estos métodos no son 100% eficaces, siguen siendo muy útiles. ¿Tienes alguna pregunta? No dudes en hacerla en el cuadro de comentarios. No olvides compartir si tienes métodos mejores. Sigue conectado con ExcelWIKI .

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.