Coincidencia de nombre en una sola columna y resultado requerido en la siguiente columna

Coincidencia de nombre en una sola columna y resultado requerido en la siguiente columna

Tengo una base de datos muy larga con alrededor de 4 a 5 filas de datos, quiero resultados en la siguiente columna con un nombre similar.

Estoy intentando usar Fuzzy pero no tengo una lista única para coincidir.

ingrese la descripción de la imagen aquí

Respuesta1

Para resolver el problema necesitas VBA (Macro):

ingrese la descripción de la imagen aquí

Cómo funciona:

  • O presioneAlt+F11oBotón derecho del ratónHoja TAB y desde el menú emergente haga clicVer código.
  • Copiar&Pegareste código comomódulo estándar.
  • CORRERla Macro.

     Private Sub Worksheet_SelectionChange(ByVal rngSel As Range)
      Set rngTable = [I2:K17]
       If rngSel.Count > 1 Or Intersect(rngSel, rngTable) Is Nothing Then End
       For Each rngCell In rngTable
    rngCell.Interior.ColorIndex = IIf(rngCell.Value = rngSel.Value, 27, -4142)
       Next
     End Sub
    

NÓTESE BIEN

  • En este código rngTable = [I2:K17], las referencias de celda y el código de color 27, -4142son editables.

Respuesta2

El enfoque que yo tomaría es una de dos maneras:

1) Utilice una tabla de búsqueda e intente inventar exhaustivamente todas las variaciones posibles que los usuarios idiotas puedan imaginar para lo mismo, o utilice datos de origen y elimine duplicados para obtener la lista conocida de opciones estúpidas. Este es el tipo de cosas que tengo que hacer al migrar datos de contacto con "título de trabajo": el registro hasta la fecha es de 67 formas diferentes de diseñar o deletrear "Director Gerente" (MD, MD, M Dir, Manging Driector, etc.). Este enfoque es excelente para datos históricos únicos: en mi caso, una vez que se migraron los datos, utilizamos listas de selección desplegables para evitar que los usuarios causaran el mismo problema de siempre en un sistema nuevo.

2) Utilice un conjunto de reglas para "descartar" información irrelevante que no considere necesaria para discriminar entre cosas que coinciden. Un montón de funciones SUSTITUIR anidadas que reemplazan cadenas cortas con "" funcionan. Reemplace los signos de puntuación como . - /: primero, luego cosas como (PVT) y Ltd y Limited. Si alguna de estas cadenas cortas es ambigua y podría aparecer dentro de otra palabra, incluya un espacio antes, después o ambos. Un buen ejemplo es reemplazar "Co " pero no "Co" para evitar terminar con "empresa" o "bblers". SUSTITUYA " " por "" (es decir, pierda los espacios al final). Esto trata sobre "ABC Foods", pero deja los espacios para el final para que aún puedas analizar cadenas sin perder fragmentos de palabras.

Supongo que considera que "ABC Foods" es lo mismo que "ABC Foods (PVT) Ltd."

Ahora cree una lista de todas las respuestas "correctas". Cree una segunda columna a la izquierda usando su fórmula, luego copie > pegue valores > especiales para "aplanar" esto. Ahora, en sus datos principales, use sus sustituciones para reducir el nombre a su formato minimalista, luego utilícelo como valor de búsqueda para devolver la versión "correcta". Puedes usar una columna auxiliar para los SUSTITUTOS o hacerlo todo de una vez.

Este enfoque requiere algunos intentos para hacerlo bien y detectar todos los bits que se pueden desechar de manera segura, pero luego es más sólido si los datos de origen pueden contener errores nuevos e inesperados en el futuro.

Recuerde: si intenta hacerlo a prueba de idiotas, alguien simplemente irá a buscar a un idiota más grande.

información relacionada