Vous êtes sur la page 1sur 13

PROCV Introduo Automatizando o n.

_ndice_coluna O Parmetro procura_intervalo PROCV em Referncias Externas -PROCV em Outra Planilha -PROCV em Outra Pasta de Trabalho Retornar Todas as Correspondncias de um PROCV PROCV com Critrios -Explicao Procurar Valores Esquerda de uma Tabela -Fazer Cpia de Coluna para o Incio da matriz_tabela -Utilizando Funes CORRESP, DESLOC e NDICE -Explicao -Rearranjar matriz_tabela Dentro do PROCV Referncias Introduo A frmula PROCV uma das funes mais usadas no Excel. Tal fato se justifica pela grande utilidade da mesma: retorna a correspondncia da coluna vizinha de um elemento em uma tabela. Exemplo: na tabela abaixo, deseja-se preencher a tabela azul (que contm muitas linhas) com os Pontos de cada Nome, de acordo com a tabela de referncia, na cor verde:

Considerando que a tabela azul tem mais de mil linhas, seria gasto um tempo muito grande para realizar a tarefa povoando-a manualmente. A frmula PROCV procura um valor ou referncia numa tabela e retorna a correspondncia na clula. Nesse exemplo, poderamos escrever em G5: =PROCV(F5;B3:D7;2;0)

e pressionar ENTER:

A frmula retornou 563, corretamente. Observe que ela possui 4 parmetros: =PROCV(valor_procura;matriz_tabela;n._ndice_coluna;procura_intervalo) valor_procura pode ser um valor ou uma referncia (ou seja, uma outra clula do Excel que tenha um valor) ; matriz_tabela a tabela onde o valor_procura ser pesquisado, verticalmente no primeiro intervalo. Essa tabela pode ter mais de uma coluna, e por isso importante ressaltar que a coluna pesquisada sempre ser a primeira coluna da tabela. Exemplo: no caso acima, matriz_tabela B3:D7, o valor_procura ser pesquisado no intervalo B3:B7 (ou seja, somente na coluna B) ; n._ndice_coluna qual coluna o PROCV retornar clula. Esse valor um nmero inteiro igual ou maior que 1. No exemplo acima, foi necessrio atribuir 2 a esse parmetro para retornar quantos Pontos um Nome tem porque Pontos a coluna logo direita, ou seja, a coluna 2 tendo-se como como 1 a coluna de referncia. importante lembrar que a matriz_tabela deve ser larga o suficiente para acomodar o n._ndice_coluna a ser usado na frmula, ou seja, se voc deseja usar 5 para o

n._ndice_coluna, a matriz_tabela deve ser no mnimo, por exemplo, A1:E1000, ou D8:Y500. Se o n._ndice_coluna ultrapassar a largura da matriz_tabela, o erro #REF! ser retornado clula. procura_intervalo pode ser VERDADEIRO/FALSO ou 0/1, e opcional. Por enquanto, mantenha-o como 0 ou FALSO (tem o mesmo efeito, pessoalmente uso o 0 por praticidade) porque adiante ser explicado como esse parmetro pode ser usado. importante lembrar que o PROCV no distingue maisculas de minsculas, isto , se na matriz_tabela conter o registro Felipe e o valor_procura for felipe, a frmula tratar esse caso normalmente e retornar sua correspondncia. Para o nosso exemplo, como preencher a clula H5, para retornar a Cidade de um Nome especfico? Ser a mesma frmula para retornar os Pontos, somente alterando o parmetro n._ndice_coluna da frmula de 2 para 3, j que se considerarmos a coluna Nome como 1, Pontos ser a 2 e ento Cidade ser a 3: =PROCV(F5;B3:D7;3;0)

O resultado ser, corretamente Bzios. A prxima etapa copiar a frmula para todas as clulas da tabela a ser preenchida. Para fazer isso, precisamos fixar a referncia da tabela a ser pesquisada (matriz_tabela), seno a tabela de procura ir deslocar quando se colar frmula abaixo.: Em G5: =PROCV($F5;$B$3:$D$7;2;0) Em H5: =PROCV($F5;$B$3:$D$7;3;0) Nota: Clique aqui para aprender mais sobre referncias relativas e absolutas. Pronto, agora s copiar essa frmula para as todas as outras clulas das colunas, ou seja, copiar-se- a clula G5 para todas as clulas da coluna G e H5 para todas as clulas da coluna H.

Suprimindo Erros no PROCV

Caso um valor procurado no seja encontrado na tabela de busca, o Excel retorna #N/D para a clula:

Veja que o PROCV consegue retornar com sucesso as correspondncias de Ricardo e ricardo, pois no distingue maisculas de minsculas, como dito anteriormente. No entanto, ao procurar Henrique a funo retorna o erro #N/D (no disponvel) porque, obviamente, o registro Henrique no consta na tabela. Muitos usurios acham esteticamente desagradvel numa Planilha esses erros ficarem expostos. H uma soluo para que a frmula retorne um resultado em branco no caso de uma correspondncia ser encontrada. As frmulas em G5, G6 e G7 seriam, respectivamente: =SEERRO(PROCV(F5;B3:D7;2;0);"") =SEERRO(PROCV(F6;B3:D7;2;0);"") =SEERRO(PROCV(F7;B3:D7;2;0);"") O resultado ser:

Para visualizar a tabela azul acima, ficou bem mais agradvel. O funcionamento da frmula SEERRO simples: caso a expresso no primeiro parmetro retornar um erro, o segundo parmetro (que nosso caso, vazio, dado pela duplas aspas) ser retornado. Vale lembrar que a funo SEERRO s pode ser usada a partir do Excel 2007.

O Parmetro procura_intervalo Conforme dito anteriormente, o parmetro procura_intervalo o ltimo argumento do PROCV. Sabemos o comportamento da funo quando ele FALSO. Observe a tabela abaixo para entender quando ele VERDADEIRO:

O exemplo acima mostra a nota de alguns alunos, e o objetivo atribuir o conceito correto de acordo com as regras da tabela verde. A frmula E7 : =PROCV(D7;$G$5:$H$10;2;VERDADEIRO) Copie a frmula para baixo para completar a tabela azul. Observe que, ao usar o argumento procura_intervalo como Verdadeiro, busca-se uma correspondncia aproximada na tabela. Note que a correspondncia sempre retorna o valor do limite inferior (exemplo: uma nota 59 busca a correspondncia de 50, e no 60) imprescindvel que a primeira coluna da matriz_tabela (ou seja, a coluna que so buscadas as correspondncias) seja numrica e esteja classificada em ordem crescente. Do contrrio, essa forma de PROCV no funcionar corretamente. Observe tambm que a matriz_tabela deve mostrar qual o valor mnimo possvel buscado (no nosso caso, 0), mas no precisa constar o valor mximo possvel (no nosso caso, 100). Com esse parmetro sendo Verdadeiro e a primeira coluna da matriz_tabela sendo composta por textos e no nmeros, o PROCV retorna a correspondncia da linha de maior nmero. Automatizando o n._ndice_coluna

Vamos para um outro cenrio. Suponha que tenhamos a tabela abaixo:

Note que nesse novo cenrio temos um grande nmero de colunas. OK, ento para preenchermos todo o contedo com PROCV, basta que: Em E12: =PROCV(D12;$B$3:$Y$7;2;0) , e ento copiar a frmula por toda a coluna ; Em F12: =PROCV(D12;$B$3:$Y$7;3;0) , e ento copiar a frmula por toda a coluna ; Em G12: =PROCV(D12;$B$3:$Y$7;4;0) , e ento copiar a frmula por toda a coluna ; E assim por diante, sempre incrementando o n._ndice_coluna em uma unidade. H um jeito mais fcil para entramos uma clula em E12 e copi-la para todas as clulas da tabela azul: =PROCV($D12;$B$3:$Y$7;COLUNA(B:B);0) , e copiar a frmula para todas as clulas da tabela. $D12 deve estar com a coluna em referncia absoluta para que quando a frmula seja colada lateralmente, o valor de procura (valor_procura) se mantenha sempre na mesma coluna. A novidade aqui o trecho COLUNA(B:B), que retorna qual o nmero da coluna de uma referncia. Ora, sabemos que a coluna B a 2. Como esse trecho est em referncia relativa, a clula sua direita ser na coluna C, que corresponde ao 3 e assim por diante.

PROCV em Referncias Externas O PROCV pode ser usado para buscar informaes em outra Planilha da Pasta de Trabalho ou at mesmo de planilhas de outras pastas de trabalho. PROCV em Outra Planilha

Considere a situao:

Essas duas planilhas esto na mesma pasta de trabalho. O objetivo preencher a tabela Nomes com as informaes da planilha Tabela usando o PROCV. Para a coluna Pontos, isso pode ser feito com a frmula: =PROCV($B3;Tabela!$B$3:$D$7;2;0) Observe o termpo Tabela!$B$3:$D$7. Antes da referncia h um nome com exclamao (Tabela!), que corresponde de qual tabela a referncia aponta ($B$3:$D$7). Nota: Se o nome da outra planilha possuir espaos, como Tabela de Dados, seria necessrio usar aspas simples na representao da referncia, tornando-se, por exemplo, 'Tabela de Dados'!$B$3:$D$7. Vale ressaltar que o smbolo de exclamao fica fora das aspas. Quando fao esse tipo de PROCV, costumo fazer a notao da matriz_tabela de uma forma diferente, conforme a seguir: =PROCV($B3;Tabela!$B:$D;2;0) Note que ao invs de utilizar 'Tabela de Dados'!$B$3:$D$7, uso Tabela!$B:$D. Isso economiza tempo para digitao da frmula sabendo-se que CTRL+Barra de espao, no Excel, seleciona uma coluna inteira (em tempo: SHIFT+Barra de espao seleciona uma linha). PROCV em Outra Pasta de Trabalho E se a tabela de pesquisa de um valor estiver em outra pasta de trabalho? Veja o exemplo abaixo:

Temos duas pastas de trabalho: Preencher e Banco de Informaes. Para preencher os dados da coluna Pontos de Nomes usando a tabela da planilha Tabela de Dados da pasta de trabalho Banco de Informaes, use a frmula: =PROCV($B3;'[Banco de Informaes.xlsx]Tabela de Dados'!$B:$D;2;0) Observe que, para esse caso, foi necessrio referenciar outra pasta de trabalho, alm de sua planilha. Para referenciar uma pasta de trabalho ativa, coloque-a entre colchetes. Vale novamente ressaltar as aspas simples: a de incio fica antes do colchete e a segunda antes do exclamao. Ser que necessrio abrir as duas planilhas toda vez que necessitar povoar a tabela de Nomes na pasta de trabalho Preencher? No. Observe que, se voc fechar a pasta de trabalho Banco de Informaes, o Excel automaticamente ir adaptar sua frmula de PROCV para algo do tipo: =PROCV($B3;'C:\Users\Padrao\Desktop\[Banco de Informaes.xlsx]Tabela de Dados'!$B:$D;2;0) Como a pasta que contm a tabela de referncia foi fechada, necessrio que o Excel saiba todo o caminho do arquivo de consulta para que ele consiga atualizar os dados da planilha Nomes. Ento, ele automaticamente preenche o caminho em todas as ocorrncias da frmula na tabela.

Retornar Todas as Correspondncias de um PROCV A limitao da funo PROCV que ela encontra apenas a primeira ocorrncia de uma correspondncia num vetor. s vezes, precisamos retornar todas essas correspondncias. Se necessita disso, visite o artigo Retornar Todas as Correspondncias de um PROCV.

PROCV com Critrios Considere a tabela abaixo:

O objetivo retornar o Cdigo atravs de um PROCV que como entrada de parmetros tem Felipe, Tarde e Escritrio. Observe que no total tem-se duas correspondncias para essa busca. Duas frmulas podem ser usadas para esse caso, uma que retorna a primeira correspondncia na tabela, e outra que retorna a ltima. Para retornar a primeira correspondncia, se B14=Felipe, C14=Tarde, D14=Escritrio: =NDICE(E3:E11;CORRESP(1;(B3:B11=B14)*(C3:C11=C14)*(D3:D11=D14);0)) (frmula matricial) Para retornar a ltima correspondncia, se B18=Felipe, C18=Tarde, D18=Escritrio: =PROC(1;(1/(B3:B11=B18)*(C3:C11=C18)*(D3:D11=D18));E3:E11) A imagem abaixo ilustra os dois casos:

Note que se houver um valor intermedirio, o mesmo no ser possvel de se obter.

Explicao Ambas as frmulas possuem o termo (B3:B11=B14)*(C3:C11=C14)*(D3:D11=D14), que pode ser representado abaixo:

Vamos chamar a coluna Resultado, que possui 0 e 1, de vetor. Obviamente, temos 1 apenas quando as trs condies so satisfeitas (B3:B11=B14)*(C3:C11=C14)*(D3:D11=D14). Reescrevendo a soluo que possui NDICE, temos:

=NDICE(E3:E11;CORRESP(1;vetor;0)) (frmula matricial) CORRESP varre um vetor do incio at o fim. Logo, ser procurado 1 em vetor. A funo retorna 4, j que o quarto elemento de vetor 1. Reescrevendo a frmula: =NDICE(E3:E11;4) (frmula matricial) Essa funo retornar o quarto elemento do vetor E3:E11, que 70. De forma anloga, ao reescrevermos a soluo usando PROC: =PROC(1;1/vetor;E3:E11) O clculo 1/vetor mostrado abaixo:

PROC, ao contrrio de CORRESP, varre um vetor do ltimo elemento ao primeiro. Logo, PROC buscar 1 em 1/vetor de trs para a frente, encontrando o oitavo elemento, e retornar o oitavo elemento de E3:E11, que 150. Procurar Valores Esquerda de uma Tabela Observe a situao abaixo:

Seu objetivo procurar os valores da coluna E em C, e retornar os Pontos e Cidade de cada ocorrncia. A frmula abaixo, em F2, no serve para ns:

=PROCV($E2;$A$2:$C$6;2;0) O resultado retornado ser #N/D. Isso ocorre porque, conforme explicado no incio deste artigo, Ricardo ser procurado na primeira coluna da matriz_tabela, isto , Pontos. Como nenhuma ocorrncia encontrada, o erro retornado. Existem algumas formas de se trabalhar nessa situao, conforme mostrado abaixo. Fazer Cpia de Coluna para o Incio da matriz_tabela Se sua matriz_tabela for pequena, voc poderia clicar sobre a coluna C, pressionar Ctrl+C, em seguida clicar com o boto da direita em A e selecionar Inserir clulas copiadas. O resultado final ser como se segue:

Agora, basta inserir a frmula em G2 a frmula =PROCV($F2;$A$2:$C$6;COLUNA(B:B);0) e copi-la por todo intervalo G2:H26. Note que ao se inserir uma coluna no incio da tabela verde, todas referncias foram deslocadas em uma coluna. No entanto, nem sempre possvel utilizar essa tcnica. Pode ser que s vezes a matriz_tabela esteja bloqueada ou as clulas esto desconfortavelmente mescladas e o usurio no pode copiar uma coluna da matriz_tabela. Os exemplos a seguir tratam dessa situao. Utilizando Funes CORRESP, DESLOC e NDICE Para a tabela original, poderamos escrever a frmula em rmula em F2: =DESLOC(A$1;CORRESP($E2;$C$2:$C$6;0);0) Ento, copiar e colar essa frmula para o intervalo G2:H26. Poderamos tambm usar a frmula em F2: =NDICE(A$2:A$6;CORRESP($E2;$C$2:$C$6;0)) E copi-la para o intervalo G2:H26.

Explicao Veja que nas duas frmulas so utilizadas a funo CORRESP. A funo CORRESP retorna o ndice do elemento $E2 no vetor $C$2:$C$6. No nosso caso, por exemplo, Rodrigo retornaria o valor 4, pois no vetor $C$2:$C$6, Rodrigo o 4o elemento. O terceiro argumento de CORRESP, o nmero 0, indica que estamos querendo uma correspondncia exata, e no aproximada. A primeira frmula ficaria ento na forma (para $E2=Rodrigo): =DESLOC(A$1;4;0) A funo DESLOC translada a partir de uma referncia uma certa quantidade de linhas e colunas, na forma =DESLOC(referencia;linhas;colunas) Logo, no nosso exemplo de DESLOC, a partir de A$1 desloca-se 4 linhas para baixo e 0 colunas, retornando a correspondncia desejada para Rodrigo, que 1129.

A segunda frmula ficaria: =NDICE(A$2:A$6;4) A funo ndice retorna o elemento nmero 4 do vetor A$2:A$6, que 1129. Rearranjar matriz_tabela Dentro do PROCV Para a tabela original, poderamos escrever a frmula em F2: =PROCV($E2;ESCOLHER({1\2};$C$2:$C$6;A$2:A$6);2;0) Ateno: No Excel 2007 ou inferior, troque o smbolo \ por . Ento, copiar e colar essa frmula para o intervaldo G2:H26. A funo ESCOLHER da forma: ESCOLHER(nmero;termo1;termo2;termo3;...;termo_n) Se nmero for igual a 1, retorna-se o termo1. Se nmero for igual a 2, retorna-se o termo2 e assim por diante. Quando inserimos um vetor dentro do parmetro nmero, como {1\2}, criamos dinamicamente uma matriz (tabela) cuja primeira coluna formada por $C$2:$C$6 e segunda coluna A$2:A$6. Como procura_intervalo 2, retorna-se corretamente a correspondncia de $C$2:$C$6 em A$2:A$6.

Vous aimerez peut-être aussi