limite de 255 caracteres no VLOOKUP

3

Usando o Excel 2003, a fórmula:

=VLOOKUP(D1 ,A1:B135, 2)

falha se o comprimento de D1 exceder 255 caracteres (ou seja, a lista tem algum texto maior que 255 caracteres, D1 tem o mesmo valor de texto e VLOOKUP retorna #VALUE!).

MATCH parece sofrer com o mesmo limite de caracteres.

Não consigo encontrar nenhuma confirmação oficial desses limites, por exemplo, aqui:

link

ou aqui:

link

Eu sei que o Excel tem um limite de 255 no comprimento do texto usado em fórmulas, mas sugere que connate deve funcionar (não neste caso, e eu não estou usando strings na fórmula, mas fazendo referência a outra célula).

Alguém pode confirmar que esses limites existem (é sempre possível que eu esteja fazendo algo errado?)

Mais importante, alguém sabe de uma maneira de contorná-los?

Obrigado

    
por zod 18.02.2011 / 12:19

3 respostas

2

Escreva sua própria pesquisa no VBA

Aqui está um começo:

Function MyVL(v As Range, r As Range, os As Long) As Variant
    Dim cl As Range

    For Each cl In r.Columns(1).Cells
        If v = cl Then
            MyVL = cl.Offset(0, os - 1)
            Exit Function
        End If
    Next
End Function
    
por 18.02.2011 / 13:15
2

Você sempre pode codificar seu próprio VLOOKUP ... mas, como alternativa, pode calcular um hash do seu valor de pesquisa e usá-lo como um novo valor de pesquisa.

Colisões podem acontecer, mas usando um algoritmo de hash um pouco decente, como o MD5, isso não deve ser um problema.

Para criar uma função hash, você pode usar as ideias do link .

    
por 18.02.2011 / 13:28
0

Eu estava procurando por correspondências exatas entre dois relatórios e encontrei isso. Eu concatenei os vários campos diferentes de um relatório e outro relatório em uma cadeia LONG e, em seguida, usei o Vlookup para identificar se cada campo de 1000 registros correspondia entre os dois relatórios. Foi quando eu me deparei com o problema.

Por ser uma coisa única e eu poder dividi-la em partes menores, concatenando menos de 255 caracteres em 3 colunas separadas, eu fiz isso e escrevi 3 pesquisas separadas e comparei os dados em 3 partes, em vez de todas uma vez. A principal desvantagem é que eu tive que reordenar pela tabela de pesquisa (coluna) que eu queria executar a pesquisa para cada um dos três subgrupos antes de executar cada pesquisa.

Eu chamo a minha solução perfeitamente aceitável para uma única coisa, mas se eu tivesse que fazer isso mais de uma vez, procuraria algo mais eficiente.

    
por 31.05.2013 / 18:54