Fórmula de Excel: Coincidir texto largo -

Fórmula genérica

=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)

Resumen

Para hacer coincidir texto de más de 255 caracteres con la función COINCIDIR, puede usar las funciones LEFT, MID y EXACT para analizar y comparar texto, como se explica a continuación. En el ejemplo que se muestra, la fórmula en G5 es:

=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)

donde los datos son el rango con nombre B5: B15.

Nota: esta fórmula realiza una comparación sensible a mayúsculas y minúsculas.

Explicación

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 LEFT, MID y EXACT para analizar y comparar texto.

La cadena con la que estamos probando en la celda E5 tiene 373 caracteres de la siguiente manera:

Lorem ipsum dolor amet puso un pájaro en su fondo fiduciario listicle, derechos de bicicleta de unicornio vaporware probablemente no hayas oído hablar de ellos bigote. La semiótica crujiente helvética del forraje en realidad es una reliquia. Tumblr poutine unicorn godard intenta antes de que se agotaran las entradas para la meditación narval kitsch chaleco fixie twee literalmente sudadera con capucha retro. Bolso mensajero infierno de crujiente jugo verde artesano.

Básicamente, esta es solo una fórmula COINCIDIR, configurada para buscar 1 en el modo de coincidencia exacta:

=MATCH(1,array,0)

La matriz en la fórmula anterior contiene solo 1 y 0, y los 1 representan texto coincidente. Esta matriz se construye con la siguiente expresión:

EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))

Esta expresión en sí tiene dos partes. A la izquierda tenemos:

EXACT(LEFT(E5,255),LEFT(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 del rango con nombre (B5: B15). Dado que los datos contienen 11 cadenas de texto, LEFT generará 11 resultados.

Luego, la función EXACTA compara la cadena única de E5 con las 11 cadenas devueltas por LEFT. EXACT devuelve 11 resultados en una matriz como esta:

(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)

A la derecha, tenemos otra expresión:

EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars

Este es exactamente el mismo enfoque que se usa con LEFT, pero aquí usamos la función MID para extraer los siguientes 255 caracteres de texto. La función EXACTA nuevamente devuelve 11 resultados:

(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)

Cuando las dos matrices anteriores se multiplican entre sí, la operación matemática convierte los valores VERDADERO FALSO en 1 y 0. 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:

=MATCH(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 LEN. Aparece solo como referencia.

Opción que no distingue entre mayúsculas y minúsculas

La función EXACTA 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 que no distinga entre mayúsculas y minúsculas con texto largo, utilice las funciones ISNUMBER y SEARCH de la siguiente manera:

=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)

La estructura general de esta fórmula es idéntica a la del ejemplo anterior, pero la función de BÚSQUEDA se usa en lugar de EXACTO para comparar texto (explicado en detalle aquí).

A diferencia de EXACT, la función BUSCAR también admite comodines.

Con XMATCH

La función XMATCH no tiene el mismo límite de 255 caracteres que MATCH. Para realizar una coincidencia similar en texto largo con XMATCH, puede usar la fórmula mucho más simple a continuación:

=XMATCH(E5,data)

Nota: XMATCH admite comodines, pero no distingue entre mayúsculas y minúsculas.

Articulos interesantes...