O PROCV foi por décadas a principal ferramenta para fazer de para no Excel, mas tinha limitações conhecidas que obrigavam a gambiarras e contornos incômodos. A busca sempre precisava ser feita na primeira coluna da tabela. Não havia um argumento nativo para o valor padrão quando o valor não era encontrado — era necessário o SEERRO. E a performance com grandes volumes de dados deixava a desejar. O Excel 365 trouxe o PROCX e outras funções de array dinâmico que superam essas limitações e tornam o de para muito mais elegante, flexível e poderoso. Neste artigo iremos mostrar como usar o PROCX e as funções modernas do Excel 365 para fazer de para de forma mais eficiente.
PROCX: o sucessor moderno do PROCV para de para
O PROCX (XLOOKUP em inglês) foi lançado no Excel 365 como substituto direto do PROCV, resolvendo todas as suas principais limitações. A sintaxe do PROCX é: =PROCX(valor_procurado; intervalo_de_busca; intervalo_de_retorno; [se_não_encontrado]; [modo_de_correspondência]; [modo_de_busca]). Diferente do PROCV, o PROCX separa explicitamente o intervalo onde a busca é feita (coluna “De” da tabela de mapeamento) do intervalo de onde o resultado é retornado (coluna “Para” da tabela de mapeamento). Isso elimina a necessidade do argumento numérico que indica a coluna do resultado e permite que a busca e o retorno sejam em qualquer coluna, em qualquer ordem.
Para o de para básico com PROCX: =PROCX(A2; De_Para[De]; De_Para[Para]; A2). Essa fórmula busca o valor de A2 na coluna “De” da tabela de mapeamento e retorna o valor correspondente da coluna “Para”. O quarto argumento — A2 — é o valor padrão quando não há correspondência: em vez de retornar erro, o PROCX retorna o próprio valor original. Isso elimina completamente a necessidade do SEERRO que era obrigatório com o PROCV. A fórmula fica mais limpa, mais fácil de entender e de manter.
Outra vantagem do PROCX para o de para é o suporte nativo a correspondência aproximada em múltiplos modos. O argumento de modo de correspondência do PROCX permite: correspondência exata (0, padrão), valor menor mais próximo (-1), valor maior mais próximo (1) ou correspondência com curingas (2, onde o asterisco * representa qualquer sequência de caracteres e o ponto de interrogação ? representa qualquer caractere único). O modo de curingas é especialmente útil para de para com correspondência parcial — mapear todos os valores que começam com “PRD-” para uma categoria sem precisar listar cada código individualmente na tabela de mapeamento.
PROCX em vetor: mapeando múltiplos valores de uma vez com array dinâmico
Uma das características mais poderosas do PROCX no contexto do Excel 365 é o comportamento com arrays dinâmicos. Quando você passa um intervalo de valores como primeiro argumento do PROCX em vez de uma única célula, ele retorna automaticamente um array com o resultado mapeado de todos os valores, sem precisar arrastar a fórmula para baixo. Isso é especialmente útil quando você quer mapear uma coluna inteira de uma só vez.
Por exemplo: =PROCX(A2:A1000; De_Para[De]; De_Para[Para]; A2:A1000) aplica o de para a todas as 999 células de A2 até A1000 de uma única fórmula, que “transborda” automaticamente para as células abaixo da célula onde foi inserida. Qualquer alteração na coluna A ou na tabela de mapeamento atualiza automaticamente todos os resultados do array. Para limitar o array ao número exato de linhas que têm dados (sem valores vazios no final), combine com a função FILTRO: =PROCX(FILTRO(A:A; A:A<>””); De_Para[De]; De_Para[Para]; FILTRO(A:A; A:A<>””)). O FILTRO remove as células vazias antes de passar para o PROCX, garantindo que o array de resultado tem exatamente o mesmo número de linhas que a base de dados preenchida.
A combinação de PROCX com ÚNICO é muito útil na fase de diagnóstico do de para. Em vez de aplicar o mapeamento em toda a base e depois identificar os valores não mapeados, primeiro extraia os valores únicos com ÚNICO e aplique o PROCX neles: =PROCX(ÚNICO(A:A); De_Para[De]; De_Para[Para]; “NÃO MAPEADO”). O resultado é uma lista compacta de todos os valores distintos com o mapeamento correspondente — ou “NÃO MAPEADO” para os que não têm correspondência. Esse diagnóstico compacto é muito mais eficiente do que verificar linha por linha em uma base com milhares de registros.
SUBSTITUIR e SUBST: de para por padrão de texto
Para cenários de de para baseados em padrões de texto — substituir uma parte específica de um texto por outra — o Excel tem duas funções nativas além do PROCX. A função SUBSTITUIR substitui uma instância específica de um texto dentro de outro: =SUBSTITUIR(texto; texto_antigo; texto_novo; instância). Por exemplo, para substituir a primeira vírgula por ponto em todos os números formatados incorretamente: =SUBSTITUIR(A2; “,”; “.”; 1). O quarto argumento (1) indica que apenas a primeira ocorrência deve ser substituída; se omitido, todas as ocorrências são substituídas.
A função SUBST substitui por posição em vez de por conteúdo: =SUBST(texto; posição_inicial; quantidade_de_caracteres; novo_texto). Para substituir os três primeiros caracteres de um código por um prefixo novo: =SUBST(A2; 1; 3; “SKU”). Essa abordagem posicional é útil quando os valores a substituir variam mas a posição e o comprimento da parte a substituir são sempre os mesmos. Por exemplo, todos os códigos de produto têm um prefixo de três caracteres que precisa ser trocado de “PRD” para “SKU”, mas o restante do código após os três primeiros caracteres é variável.
Para de para baseado em expressões de padrão mais complexas — substituir qualquer sequência que segue um padrão específico —, o Excel 365 tem suporte a funções de expressão regular através da função =REGEXSUBSTITUIR (disponível em algumas versões do Excel 365). Essa função permite definir um padrão de expressão regular como critério de busca e substituir qualquer texto que corresponda ao padrão, o que é impossível com o PROCV ou PROCX que só trabalham com correspondência exata de valores predefinidos na tabela de mapeamento.
Combinando PROCX com DEIXE para de para em múltiplas etapas
Para de para em múltiplas etapas — onde o resultado de um mapeamento alimenta o próximo — a função DEIXE (LET) do Excel 365 permite organizar a lógica em variáveis nomeadas dentro de uma única fórmula, tornando o código muito mais legível. A DEIXE permite nomear cálculos intermediários e reutilizá-los na fórmula sem recalcular cada vez.
Por exemplo, um de para em duas etapas onde você primeiro normaliza o texto (remove espaços e converte para maiúsculas) e depois faz o mapeamento: =DEIXE(texto_normalizado; ARRUMAR(MAIÚSCULA(A2)); PROCX(texto_normalizado; De_Para[De]; De_Para[Para]; texto_normalizado)). A variável “texto_normalizado” é calculada uma vez e usada duas vezes na fórmula — como argumento do PROCX e como valor padrão quando não há correspondência. Sem a DEIXE, você teria que repetir ARRUMAR(MAIÚSCULA(A2)) duas vezes na mesma fórmula, o que além de verboso também calcula o mesmo valor duas vezes.
A combinação de PROCX, ÚNICO, FILTRO, DEIXE e as demais funções de array dinâmico do Excel 365 cria um ecossistema de de para muito mais poderoso do que o que era possível com o PROCV isolado. Para quem trabalha frequentemente com padronização e mapeamento de dados, aprender essas funções modernas é um dos investimentos de tempo com maior retorno no aprendizado do Excel — as possibilidades de transformação de dados que antes exigiam macros VBA ou Power Query agora são acessíveis com fórmulas nativas dentro da grade da planilha.
Se você curtiu esse artigo onde mostramos como usar o PROCX e as funções modernas do Excel 365 para fazer de para de forma mais eficiente, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.