miércoles, 10 de junio de 2020

EXCEL: Hacer coincidir texto largo

Excel formula: Match long text

Fórmula genérica

=COINCIDIR(1,IGUAL(IZQUIERDA(A1,255),IZQUIERDA(rng,255))*IGUAL(EXTRAE(A1,256,255),EXTRAE(rng,256,255)),0)

Explicación

Para hacer coincidir texto de más de 255 caracteres con la función COINCIDIR, puede usar las funciones IZQUIERDA, EXTRAE e IGUAL para analizar y comparar texto, como se explica a continuación. En el ejemplo que se muestra, la fórmula en G5 es:
=COINCIDIR(1,IGUAL(IZQUIERDA(E5,255),IZQUIERDA(data,255))*IGUAL(EXTRAE(E5,256,255),EXTRAE(data,256,255)),0)
donde los datos son el rango nombrado B5: B15.
Nota: esta fórmula realiza una comparación entre mayúsculas y minúsculas.

Cómo funciona esta fórmula

La función COINCIDIR tiene un límite de 255 caracteres para el valor de búsqueda. Si intenta utilizar texto más largo, COINCIDIR devolverá un error #VALOR.
Para solucionar este límite, puede usar la lógica booleana y las funciones IZQUIERDA, EXTRAE e IGUAL para analizar y comparar texto.
La cadena que estamos probando en la celda E5 tiene 373 caracteres de la siguiente manera:
Lorem ipsum dolor amet puso un pájaro en el fondo fiduciario de la lista, derechos de bicicleta de vapor unicornio que probablemente no haya oído hablar de ellos bigote. Forraje helvética semiótica crujiente en realidad herencia. Tumblr poutine unicornio godard intenta duro antes de que se agoten narval kitsch meditación chaleco fixie twee literalmente sudadera con capucha retro. Bolso mensajero infierno de crujiente jugo verde artesano.
En el fondo, esta es solo una fórmula COINCIDIR, configurada para buscar 1 en modo de coincidencia exacta:
=COINCIDIR(1,array,0)
La matriz en la fórmula anterior contiene solo 1s y 0s, y 1s representan texto coincidente. Esta matriz se construye con la siguiente expresión:
IGUAL(IZQUIERDA(E5,255),IZQUIERDA(data,255))*IGUAL(EXTRAE(E5,256,255),EXTRAE(data,256,255))
Esta expresión en sí misma tiene dos partes. A la izquierda tenemos:
IGUAL(IZQUIERDA(E5,255),IZQUIERDA(data,255)) // compare first 255 chars
Aquí, la función IZQUIERDA extrae los primeros 255 caracteres de E5 y de todas las celdas en los datos de rango con nombre (B5: B15). Debido a que los datos contienen 11 cadenas de texto, IZQUIERDA generará 11 resultados.
La función IGUAL luego compara la cadena única de E5 con todas las 11 cadenas devueltas por IZQUIERDA. IGUAL devuelve 11 resultados en una matriz como esta:
{FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;VERDADERO;FALSO}
A la derecha, tenemos otra expresión:
IGUAL(EXTRAE(E5,256,255),EXTRAE(data,256,255) // compare next 255 chars
Este es exactamente el mismo enfoque que se usa con IZQUIERDA, pero aquí usamos la función EXTRAE para extraer los siguientes 255 caracteres de texto. La función IGUAL nuevamente devuelve 11 resultados:
{VERDADERO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;VERDADERO;FALSO}
Cuando las dos matrices anteriores se multiplican entre sí, la operación matemática obliga a los valores VERDADERO FALSO a 1s y 0s. Siguiendo las reglas de la aritmética booleana, el resultado es una matriz como esta:
{0;0;0;0;0;0;0;0;0;1;0}
que se devuelve directamente a COINCIDIR como la matriz de búsqueda. La fórmula ahora se puede resolver para:
=COINCIDIR(1,{0;0;0;0;0;0;0;0;0;1;0},0)
La función COINCIDIR realiza una coincidencia exacta y devuelve un resultado final de 10, que representa la décima cadena de texto en B5: B15.
Nota: la longitud del texto que se muestra en el ejemplo se calcula con la función LARGO. Aparece solo como referencia.

Opción sin distinción entre mayúsculas y minúsculas

La función IGUAL distingue entre mayúsculas y minúsculas, por lo que la fórmula anterior respetará las mayúsculas y minúsculas.
Para realizar una coincidencia entre mayúsculas y minúsculas con texto largo, utilice las funciones ESNUMERO y HALLAR de la siguiente manera:
=COINCIDIR(1,ESNUMERO(HALLAR(IZQUIERDA(E5,255),IZQUIERDA(data,255)))*ESNUMERO(HALLAR(EXTRAE(E5,256,255),EXTRAE(data,256,255))),0)
La estructura general de esta fórmula es idéntica al ejemplo anterior, pero se utiliza la función HALLAR en lugar de IGUAL para comparar texto (explicado en detalle aquí).
A diferencia de IGUAL, la función HALLAR también admite comodines.

Con COINCIDIRX

La función COINCIDIRX no tiene el mismo límite de 255 caracteres que COINCIDIR. Para realizar una coincidencia similar en texto largo con COINCIDIRX, puede usar la fórmula mucho más simple a continuación:
=COINCIDIRX(E5,data)
Nota: COINCIDIRX admite comodines, pero no distingue entre mayúsculas y minúsculas.

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT