Desenvolvimento - OfficeFeed de artigos deste autor

Buscando Um Valor em Duas Tabelas na Mesma Planilha

Neste artigo faremos a busca de um determinado valor em duas tabelas diferentes, por exemplo, uma tabela da região Norte e outra da Região Sul, na célula apropriada para a digitação do produto, colocaremos o nome do produto que desejamos procurar e a função retornará casa exista nas duas tabelas.

por Eduardo Andrade



Bom, neste artigo faremos a busca de um determinado valor em duas tabelas diferentes, por exemplo, uma tabela da região Norte e outra da Região Sul, na célula apropriada para a digitação do produto, colocaremos o nome do produto que desejamos procurar e a função retornará casa exista nas duas tabelas.

Para fazer a Busca dos valores usaremos a Função da Categoria Procura e Referência, mais conhecida como Função Procv. A Função Procv localiza o valor solicitado na primeira coluna à esquerda de uma tabela e retorna o valor de qualquer coluna que esteja à direita na mesma linha. O V em PROCV significa "Vertical".

Sintaxe:

=PROCV(valor_procurado;matriz_tabela;núm_índice_coluna;procurar_intervalo)

Valor_procurado: é o valor a ser localizado na primeira coluna da matriz (tabela). O valor pode ser, uma referência ou uma seqüência de caracteres (número ou texto).
Matriz_tabela: é a tabela de informações em que os dados são procurados.
Núm_índice_coluna: é o número da coluna em matriz_tabela a partir do qual o valor correspondente deve ser retornado. Começando da esquerda para a direita a quantidade de colunas existente na tabela em que está fazendo a busca, e nesse mesmo sentido cada coluna tem um número começando do 1(um).
Procurar_intervalo: é um valor lógico que especifica se você quer que PROCV encontre a correspondência exata (FALSO) ou uma correspondência aproximada (VERDADEIRO).

Comentários

  • Se PROCV não localizar valor_procurado e procurar_intervalo for VERDADEIRO, ela usará o maior valor que for menor do que ou igual a valor_procurado.
  • Se valor_procurado for menor do que o menor valor na primeira coluna de matriz_tabela, PROCV fornecerá o valor de erro #N/D.
  • Se PROCV não localizar valor_procurado e procurar_intervalo for FALSO, PROCV fornecerá o valor #N/D.

Para exemplificar melhor a teoria acima, vamos fazer um exemplo antes de partir para o exercício, veja:

Dica da Função Procv: no Argumento Valor_procurado se vc estiver usando um texto obrigatoriamente tem de ser digitado entre Aspas Dupla "", caso seja uma referência de célula ou um número não é necessário. Isso não se aplica ao último argumento Procurar_intervalo, pois, ele só pode ter dois valores, VERDADEIRO ou FALSO, não precisando de Aspas Dupla para esse argumento.

Bom, após termos visto exemplo acima partiremos para o propósito principal deste artigo, que é a busca de um valor em duas tabelas, veja na imagem abaixo as duas tabelas:

Na Célula F8 é o local que sairá o resultado da busca nas duas tabelas, porém nesse nosso caso será necessário usar uma outra função para o auxílio na tomada de decisão para saber se o valor existe nas duas tabelas, e então comparar uma função Procv com outra, e ver o resultado na célula. A função que nos ajuda em tomadas de decisão no caso seria a Função SE, uma função da categoria Lógica.

Veja a sua sintaxe é:

=SE(teste_lógico;valor_se_verdadeiro;valor_se_falso). Para conseguirmos localizar o produto Arroz em uma das tabelas seria feito da seguinte forma:

=PROCV(F6;B13:D22;1;FALSO)

O Retorno da Função acima seria o próprio nome do produto (no caso arroz), pois, a coluna de procura é a mesma onde se encontra o valor procurado. É ai onde se encaixa a Função SE, para que eu possa comparar o valor da Função Procv da tabela Norte com a Função Procv da tabela Sul, e me retornar as mensagens: Existe, caso o produto tenha nas duas, e Não Existe no caso contrário. Veja na figura abaixo como ficaria:

Veja na Barra de Fórmulas da Planilha que foi necessário comparar uma Função Procv com Outra, para que casa haja nas duas retorna a mensagem "Existe", então está pronta a função?

Ainda não, existe um pequeno erro a ser corrigido na Função. Ao digitar um produto que só exista em uma das tabelas ou não exista nas duas, a função ocultará a mensagem "Não Existe", na Função Procv quando ele não encontra o valor procurado retorna a seguinte mensagem de erro #N/D (veja a figura 4). Quer dizer que o valor procurado não está disponível, para resolver esse problema usaremos uma outra função para corrigir esse erro, a que verifica se existe algum erro tanto em fórmulas e funções quanto em uma célula é a Função ÉERROS.


Figura 4: veja na barra de fórmula que a função é a mesma, porém, o produto não existe nas tabelas.

Veja a sua Sintaxe:

= ÉERROS(valor)

A Função ÉERROS, verifica se há um erro na célula como: (#N/D, #VALOR!, #REF!, #DIV/0!, #NÚM!, #NOME? ou #NULO!). Caso exista um erro na célula ou função procurada retorna VERDADEIRO, caso contrário FALSO. Sabemos então que em uma das Funções Procv poderá ocorrer um erro, sei em qual delas ocorrerá o erro? Infelizmente Não, por isso iremos tratar as duas funções, e ficaria como na figura abaixo:

Observe que agora a mensagem "Não Existe", aparece caso o produto não exista ou tenha somente em uma das tabelas. Mas veja ouve duas alterações na Função vejam abaixo quais foram às alterações da função:

=SE(ÉERROS(PROCV(F6;B13:D22;1;FALSO)=PROCV(F6;F13:H22;1;FALSO));"NÃO EXISTE";"EXISTE")

1º As duas Funções Procv foram envolvidas pela Função Éerros que vem depois da Função SE;

2º As mensagens foram alteradas de posição, pois, caso exista erro nas Funções Procv aparece à mensagem "Não Existe", senão "Existe".

Essa forma descrita nesse artigo, é uma das formas mais fácil de se localizar um valor em duas tabelas, encima de exemplo você pode usar o CPF ao invés de Produto, retornar um Cálculo ou invés de Mensagem, depende apenas de sua imaginação e como dizia Albert Einstein: "A imaginação é mais importante que o conhecimento".

Tente você fazer as suas pesquisas!

Eduardo Andrade

Eduardo Andrade - É Consultor Especialista Ministrando treinamentos há mais de 10 anos, notadamente focados em:

  • Excel Essencial,
  • Formação em Excel
  • Automação de Planilhas
  • Excel Avançado
Além de Ministrar Treinamento em Excel, possui mais de 09 (nove) anos de experiência em Modelagem de Planilhas e Desenvolvimento de Software. Já treinou mais de 3.500 pessoas nestes treinamentos. Atua como consultor de desenvolvimento de aplicações em Excel, utilizando fortemente recursos avançados de Excel e macros/VBA, tendo já atuado em mais de 30 projetos de consultoria.