Entender os algoritmos de Pesquisa Exata e Aproximada do Excel

Neste artigo mostramos as diferenças entre a Correspondência Exata e a Correspondência Aproximada nas funções de Pesquisa do Excel como o PROCV.
Algoritmos de pesquisa do excel

Resumo

Qual é a função que mais usas no Excel? Provavelmente o PROCV (Vlookup) está no teu top 3. E se te perguntarmos se usas o tipo correspondência exata ou aproximada na pesquisa do PROCV... aquele último zero (0) que toda a gente coloca quando usa esta função... sabes responder?

Tipo de pesquisa

Se colocares a mesma questão a outros utilizadores do Excel é muito provável que ninguém saiba muito bem do que estamos a falar. Mas afinal, o que significa o zero (0) no final da função? E será que ele é assim tão importante? A verdade é que este 0 pode muito bem ser a razão para que os teus ficheiros carregados de PROCV sejam muito lentos.

Este tipo de correspondência também é usado pelas funções PROCH (Hlookup), PROC (Lookup) e CORRESP (Match). E a nova função do Excel 365, PROCX (Xlookup), também usa este princípio de correspondência na pesquisa. Continua a ler para explorares mais sobre os algoritmos de pesquisa do Excel.

Algoritmo de Pesquisa Linear

O Microsoft Excel refere-se a este algoritmo como sendo a Correspondência Exacta. É este algoritmo que estamos a usar quando colocamos o zero (0) no PROCV (Vlookup).

O algoritmo de pesquisa linear usa um método sequencial de busca para encontrar o valor que procuramos dentro de uma lista. Para este algoritmo é irrelevante se a lista está ordenada ou não. A pesquisa é feita elemento a elemento desde o princípio da lista até que uma correspondência seja encontrada. Desta forma, podemos assumir que o tempo que esta pesquisa demorará é directamente proporcional à posição do elemento que estamos a procurar.
Algoritmo linear
Visualização do algoritmo de pesquisa linear


Esta solução funciona muito bem em intervalos relativamente curtos. Mas quando a usamos em ficheiros com muitos milhares de linhas é quando começamos a sentir as limitações de fazer esta pesquisa elemento a elemento. Convém notar que se o intervalo de dados analisado não for ordenável, provavelmente este algoritmo será mesmo a melhor solução a aplicar (ainda que mais lenta).

Algoritmo de Pesquisa Binária

Este algoritmo é usado na Correspondência Aproximada do Excel, quando no PROCV usamos 1 em vez de 0. O que o algoritmo faz é usar o método da pesquisa binária (ou método de bissecção) para dividir o intervalo tornando-se assim mais rápido na execução da pesquisa.

O valor que estamos a pesquisar é comparado com o elemento no meio da lista e se não corresponder vai eliminando elementos que ficam no intervalo fora da pesquisa até chegar ao valor mais próximo do valor que procuramos.
Algoritmo binário
Visualização do algoritmo de pesquisa binária


Este algoritmo, nas funções PROC (Proc), PROCH (Hlookup) e PROCV (Vlookup), obriga a que o intervalo esteja ordenado por ordem ascendente. A função CORRESP (Match) e a nova função PROCX (Xlookup) permitem utilizar o algoritmo com ordenação crescente ou descendente para localizar o correspondente mais próximo.

Pesquisa aproximada

Se o valor pesquisado não existir na lista em que estamos a procurar, o algoritmo pode ter duas respostas:

Se o valor for inferior ao primeiro valor do intervalo, por exemplo procurar por -1 num intervalo que começa em 0, a fórmula devolve erro #N/D.

Se o valor for superior ao último valor do intervalo, neste exemplo o último valor é 7, esse será sempre o valor devolvido. Seja o critério de busca 8, 100 ou 1000. É indiferente. O algoritmo irá devolver o valor mais próximo do valor pesquisado.

Descargas

Descarrega aqui o ficheiro com os exemplos para entender os algoritmos de pesquisa exata e aproximada