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.
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?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.
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.
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.
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