O canivete suíço do Excel: PROCX
Olá pessoal, Isadora Lupchinski para mais um artigo. O tema de hoje é para os utilizadores de Excel que utilizam com frequência as funções PROCV e PROCH (vlookup e hlookup, caso esteja a utilizar a função em inglês) mas precisam sempre estar atentos aos erros #N/D que por vezes acontece.
Vamos direto a um exemplo para explicar melhor sobre a função PROCV e também sobre a função PROCX. Essa última é uma função mais recente lançada pela Microsoft, para o utilizadores do Office 365. Por isso, se eventualmente não a encontrar, pode ser devido à versão do Excel. Recomendo, sempre que possível, os utilizadores terem a mais recente, pois tem surgido funções que otimizam muito o nosso trabalho e produtividade dentro da ferramenta, como por exemplo as função matriciais dinâmicas, mas que podem ficar para outros artigos.
Exemplo 1
Suponha que temos uma tabela em um relatório de vendas com as seguintes informações: número do cliente, número do contribuinte, nome do cliente, vendas, margem, margem %, saldo, PMR em dias (prazo médio de recebimento) e região.
Obs.: são dados fictícios para fins de demonstração.
A título de exemplo, temos apenas 20 linhas nessa tabela, no entanto, suponha que tivéssemos centenas ou milhares de linhas ao longo dela e quiséssemos pesquisar o saldo de um determinado contribuinte.
Uma das soluções que podemos utilizar é utilizar a função PROCV, que possui a seguinte sintaxe:
=VLOOKUP (O que pretende procurar, onde pretende procurar, o número da coluna na gama que contém o valor a devolver, devolva uma correspondência Aproximada ou Exata – indicada como 1/TRUE, ou 0/FALSE).
O segredo para a VLOOKUP é organizar os seus dados para que o valor que procura seja à esquerda do valor de retorno que pretende encontrar.
Dito isso, queremos que ao digitar o número do contribuinte na célula L3, queremos que o saldo seja devolvido na célula M3.
Desse modo, visualmente estamos a ver que se o contribuinte for o 307510436, a célula M3 deverá devolver 12 650,61€.
Pois bem, vamos colocar a mão na massa:
=PROCV( L3; B6:G25; 6; FALSO )
Ou seja, estamos a procurar a célula L3 (Contribuinte que o utilizar vai digitar), no intervalo da tabela que vai da coluna B até a coluna G – isso porque precisamos indicar na primeira coluna justamente a informação que desejamos buscar, o contribuinte, e ainda, nesse intervalo de colunas selecionadas precisa estar presente à direita a coluna que desejamos que ele retorne, que nesse caso é o saldo).
E eventualmente, se optarmos por formatar o intervalo como tabela:
O PROCV ficaria assim:
= PROCV( L3; Tabela1[[Contribuinte]:[Saldo]]; 6; FALSO )
Vejamos agora como seria o mesmo cálculo com a função PROCX, que possui a seguinte sintaxe:
Veja que uma das diferenças está no facto de ter mais argumentos na sintaxe, como por exemplo: se não encontrar o campo pesquisado, ao invés de retornar erro, podemos escrever um texto. Outra grande diferença é que NÃO precisamos passar TODA a tabela ou intervalo, tal qual fizemos no segundo argumento da PROCV, basta especificar A COLUNA que buscamos (nesse exemplo será a coluna do contribuinte) e A COLUNA que queremos retornar (o saldo).
Teríamos então a seguinte fórmula:
=PROCX( L3; B6:B25; G6:G25; "Contribuinte não encontrado"; 0 )
Ou seja,
Alternativamente, para os que tiverem a tabela como tabela (Definir como tabela), seria assim:
=PROCX(L3;Tabela1[[#Todos];[Contribuinte]];Tabela1[[#Todos];[Saldo]];"Contribuinte não encontrado";0)
Veja que em ambos as funções, tanto o PROCV quanto o PROCX, os resultados foram idênticos:
No entanto, caso haja a necessidade de adicionar alguma nova coluna nessa tabela, o nosso PROCV teria grandes chances de ficar lixado.
Por exemplo, precisamos adicionar uma coluna com o nome do contacto responsável de cada empresa:
Após adicionar a nova coluna, vejamos então como essa alteração afetou os nossos resultados:
Temos uma diferença entre elas: ao introduzirmos uma nova coluna, o nosso procv foi diretamente impactado, uma vez que tínhamos especificado a posição da coluna desejada como sendo a 6ª, ao passo que agora, a nossa coluna do saldo passou a ser a 7ª posição do nosso intervalo. Desse modo, o 0,20 que está a aparecer corresponde, na verdade, à margem e não ao saldo.
Ao contrário do Procx que ficou intacto! Manteve o valor correto do saldo e não sofreu nenhuma alteração. Essa é uma das grandes diferenças/vantagens da procx. À medida que acrescentamos ou removemos coluna no nosso intervalo ou tabela, ele não se altera como a Procv.
Exemplo 2
Vejamos então mais uma situação em que a PROCX nos dá muito jeito.
Suponha agora que ao invés de retornar o saldo, que quiséssemos retornar o id do cliente, que na nossa tabela se chama Num.
=PROCV(M3;A6:B25;1;FALSO)
Ou seja,
=
PROCV(
M3; '//estamos a procurar a célula M3 (número do contribuinte a ser pesquisado)
A6:B25; '//nesse intervalo da tabela (colunas A e B, pois são elas que contém os campos que queremos)
1; '//e retorna a 1ª coluna desse intervalo, ou seja, a coluna A, com o número do cliente
FALSO '//queremos a correspondência exata, ou seja, queremos exatamente o número do contribuinte
)
Enquanto que o PROCX será:
=PROCX(M3; B6:B25; A6:A25; "Contribuinte não encontrado"; 0 )
E os resultados serão:
Ops! Temos aqui um erro no nosso PROCV, enquanto o PROCX deu certo.
Isso aconteceu porque o valor que procuramos precisa ficar à esquerda do valor de retorno que pretende encontrar. E nesse caso isso não foi respeitado e teríamos esse erro.
Pois bem, mais uma vantagem para usar a nossa mais nossa queridinha do Excel: a PROCX.
Vou ficando por aqui, espero que tenham gostado.
Aproveito também a oportunidade para desejar boas festas e um feliz Natal a todos.
Que 2022 traga saúde e prosperidade a todos nós. São os votos da família Portal Gestão.