
Fórmula genérica
=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)
Resumo
Para combinar texto com mais de 255 caracteres com a função CORRESPONDÊNCIA, você pode usar as funções LEFT, MID e EXACT para analisar e comparar o texto, conforme explicado abaixo. No exemplo mostrado, a fórmula em G5 é:
=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)
onde os dados são o intervalo nomeado B5: B15.
Observação: esta fórmula realiza uma comparação com distinção entre maiúsculas e minúsculas.
Explicação
A função MATCH tem um limite de 255 caracteres para o valor de pesquisa. Se você tentar usar um texto mais longo, MATCH retornará um erro #VALUE.
Para contornar esse limite, você pode usar a lógica booleana e as funções LEFT, MID e EXACT para analisar e comparar texto.
A string que estamos testando na célula E5 tem 373 caracteres da seguinte maneira:
Lorem ipsum dolor amet colocou um pássaro em um fundo fiduciário de listicle, direitos de bicicleta de unicórnio vaporware você provavelmente nunca ouviu falar deles bigode. Semiótica crosta helvética da forragem, na verdade, herança. Tumblr poutine unicórnio godard se esforce antes de esgotar o colete kitsch de meditação narval com twee literalmente retro com capuz. Saco de mensageiro inferno de crocante suco verde artesanal.
Basicamente, esta é apenas uma fórmula de CORRESPONDÊNCIA, configurada para procurar 1 no modo de correspondência exata:
=MATCH(1,array,0)
A matriz na fórmula acima contém apenas 1s e 0s, e 1s representam o texto correspondente. Esta matriz é construída pela seguinte expressão:
EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))
Esta expressão em si tem duas partes. À esquerda temos:
EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars
Aqui, a função ESQUERDA extrai os primeiros 255 caracteres de E5 e de todas as células nos dados do intervalo nomeado (B5: B15). Como os dados contêm 11 strings de texto, LEFT gerará 11 resultados.
A função EXACT então compara a única string de E5 com todas as 11 strings retornadas por LEFT. EXACT retorna 11 resultados em uma matriz como esta:
(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
À direita, temos outra expressão:
EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars
Esta é exatamente a mesma abordagem usada com LEFT, mas aqui usamos a função MID para extrair os próximos 255 caracteres de texto. A função EXACT retorna novamente 11 resultados:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Quando as duas matrizes acima são multiplicadas uma pela outra, a operação matemática força os valores TRUE FALSE em 1s e 0s. Seguindo as regras da aritmética booleana, o resultado é uma matriz como esta:
(0;0;0;0;0;0;0;0;0;1;0)
que é retornado diretamente para MATCH como a matriz de pesquisa. A fórmula agora pode ser resolvida para:
=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)
A função MATCH executa uma correspondência exata e retorna um resultado final de 10, que representa a décima string de texto em B5: B15.
Nota: o comprimento do texto mostrado no exemplo é calculado com a função LEN. Ele aparece apenas para referência.
Opção que não diferencia maiúsculas de minúsculas
A função EXACT faz distinção entre maiúsculas e minúsculas, então a fórmula acima respeitará maiúsculas e minúsculas.
Para realizar uma correspondência sem distinção entre maiúsculas e minúsculas com texto descritivo, use as funções ISNUMBER e SEARCH da seguinte maneira:
=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)
A estrutura geral desta fórmula é idêntica ao exemplo acima, mas a função SEARCH é usada em vez de EXACT para comparar o texto (explicado em detalhes aqui).
Ao contrário de EXACT, a função SEARCH também oferece suporte a curingas.
Com XMATCH
A função XMATCH não tem o mesmo limite de 255 caracteres que MATCH. Para realizar uma correspondência semelhante em texto longo com XMATCH, você pode usar a fórmula muito mais simples abaixo:
=XMATCH(E5,data)
Nota: XMATCH oferece suporte a curingas, mas não diferencia maiúsculas de minúsculas.