Articles

Excel: Wildcards em VLOOKUP e SUMIFS

Em um seminário recente do Power Excel para um capítulo da IMA®, um participante perguntou se existe uma forma de usar o VLOOKUP para corresponder a um número que está embutido dentro de uma célula mais longa. Ela estava tentando fazer corresponder cheques de um registro de cheques com uma lista de transações compensadas de seu banco. A dificuldade: O número do cheque estava embutido dentro de um campo Código de Transação.

O campo que ela precisava para pesquisar continha um número variável de caracteres como um prefixo, seguido pelo número do cheque, terminando então com ainda mais caracteres. A maioria das pessoas não percebe que o VLOOOKUP irá suportar wildcards. Na verdade, a equipe do Excel na Microsoft acha que os wildcards acabam mais frequentemente em VLOOKUPs por acidente do que por pessoas que os usam intencionalmente. Como a maioria das pessoas não sabe que o VLOOOKUP suportará curingas, parece mais provável que as pessoas realizem um VLOOKUP onde seu valor de busca contenha um caractere que não tenha a intenção de representar uma curinga.

USING WILDCARDS

Os curingas padrão são um asterisco (*) para significar qualquer número de caracteres, e um ponto de interrogação (?) para significar qualquer caractere. E se você realmente tiver que procurar por um asterisco ou um ponto de interrogação? Use ~* para procurar por um asterisco ou ~? para procurar por um ponto de interrogação. Use ~~ para procurar por um til.

Usar estes três caracteres é particularmente difícil se você tiver centenas de VLOOKUPs e os valores já contêm caracteres curinga. Tentar converter os valores na mosca usando funções de SUBSTITUTO aninhadas torna-se complicado. Imagine =VLOOKUP(SUBSTITUTO(SUBSTITUTO(SUBSTITUTO(A2, “~”,”~~”), “*”,”~*”),”?”,”~?”). Seria melhor se a Microsoft oferecesse uma opção que desligasse o comportamento wildcard para uma determinada planilha ou pasta de trabalho.

Voltar para o problema original. Você teria que procurar por *apple* para encontrar a palavra “apple” dentro de qualquer texto na primeira coluna da tabela de pesquisa. Mas como a célula A2 da Figura 1 já contém “apple”, a fórmula começa com =VLOOKUP(“*”&A2&”*”. Neste caso, você está usando o caractere de concatenação (&) para embrulhar o valor em A2 com um asterisco em cada lado. Alternativamente, você poderia usar =VLOOOKUP(CONCATENATE( “*”,A2, “*”) para envolver a palavra “apple” em asteriscos.

A fórmula =VLOOKUP(“*”&A2&”*”,$D$2:$E$6,2,FALSE) encontra correctamente os $956 da célula E5.

Utilize um cuidado extra ao rever os resultados da pesquisa do wildcard. E se você estivesse procurando por “apple” e “crabapple”? A busca por “crabapple” seria correta, mas como o VLOOKUP retorna a primeira correspondência na tabela de pesquisa, o VLOOKUP para *apple* retornaria o valor para “crabapple” se ele for encontrado antes de “apple” na tabela de pesquisa.

FINDING AND SUMMING ALL MATCHES

Como eu trabalhei no exemplo no seminário do Excel, alguém perguntou sobre a situação onde poderia haver múltiplas correspondências e você gostaria de encontrar e somar todos os resultados correspondentes.

Desde que o wildcard *apple* funcionou tão bem com o VLOOKUP, eu criei um conjunto de dados onde podíamos testar para ver se o SUMIFS permitiria wildcards também. Na função SUMIFS mostrada abaixo, a fórmula diz para somar os valores na coluna E se o valor correspondente na coluna D contiver *Aplicar*. Esta fórmula também funciona.

IMPROVANDO O MANUSEIO DE WILDCARD

Vai ficar surpreendido por saber que o VLOOOKUP também pode lidar com wildcards? Você já fez um VLOOKUP onde o valor de busca pode conter um asterisco ou ponto de interrogação como parte do texto normal e não pretende ser usado como um curinga?

Se a resposta a qualquer uma dessas perguntas for sim, então provavelmente faria sentido para você a Microsoft oferecer uma versão nova e melhorada do VLOOKUP que ignora curingas por padrão. Poderia haver um argumento extra opcional no final desta nova função que lhe permitiria dizer ao Excel para usar os wildcards. Se você deixasse esse argumento de fora, então o Excel não usaria nenhum curinga. Você poderia facilmente procurar por “142*154” ou “Por quê?” ou “e*Trade” sem ter que se preocupar com um valor como “Electrical Trade” aparecendo como uma falsa combinação.

FASTER VLOOOKUPS AREVEM

Microsoft tem testado uma nova versão mais rápida do VLOOKUP no canal Insider Monthly do Office 365 nos últimos meses. A função é frequentemente 10 vezes mais rápida do que a antiga VLOOKUP, particularmente quando há milhares de pesquisas na mesma tabela.

A nova lógica deve estar sendo lançada para todos os assinantes do Office 365 até o final de 2019. Se os seus VLOOOKUPs estão demorando menos de um segundo, você pode não notar a mudança. Mas se você tiver uma planilha enorme que leva 40 segundos para ser calculada, espere ver o tempo de recálculo cair para cerca de quatro segundos ou menos.