Funções de busca e referência no Calc para cruzamento de informações

Capítulo 6

Tempo estimado de leitura: 6 minutos

+ Exercício

Conceito: cruzar informações sem duplicar dados

Em controles e relatórios, é comum ter uma tabela “mestre” (cadastro) com dados estáveis, como Produtos e Clientes, e outra tabela de Lançamentos (movimentações) com registros diários. Em vez de repetir descrição, categoria e preço em cada lançamento (o que gera inconsistência e retrabalho), você registra apenas uma chave de busca (por exemplo, CodProduto) e usa funções de busca e referência para “puxar” os demais campos do cadastro.

Chave de busca é um identificador que existe nas duas tabelas e aponta para o mesmo item. Exemplos: CodProduto, IDCliente, CPF, Email. Boas chaves são únicas, estáveis e sem variações de digitação.

Estrutura sugerida (duas abas)

Você pode organizar assim:

  • Aba Produtos (cadastro): CodProduto, Descricao, Categoria, Preco
  • Aba Lancamentos (movimentação): Data, CodProduto, Qtd, e colunas calculadas para Descricao, Categoria, Preco, Total

PROCV e PROCH: busca em tabela por coluna ou por linha

No Calc, PROCV procura um valor na primeira coluna de um intervalo e retorna dados de outra coluna na mesma linha. PROCH faz o equivalente por linha (procura na primeira linha e retorna de outra linha).

Quando usar PROCV

Use quando sua tabela de cadastro está “em pé” (códigos em uma coluna). É o caso mais comum.

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

Correspondência exata (muito importante)

Para cadastros (produtos/clientes), a busca deve ser exata. No PROCV, isso é controlado pelo último argumento: use 0 (ou FALSO) para correspondência exata. Se você usar correspondência aproximada por engano, pode retornar o item errado.

Passo a passo prático com PROCV (Produtos → Lançamentos)

1) Monte o cadastro na aba Produtos

ABCD
CodProdutoDescricaoCategoriaPreco
P001Café 500gMercearia18,90
P002Açúcar 1kgMercearia5,49
P003DetergenteLimpeza2,99

2) Na aba Lancamentos, registre apenas o código

ABCDEF
DataCodProdutoQtdDescricaoCategoriaPreco
10/01P0023

3) Busque a Descrição (em Lancamentos.D2)

=PROCV(B2;Produtos.$A$2:$D$100;2;0)

Explicação dos argumentos: B2 é o código digitado no lançamento; Produtos.$A$2:$D$100 é a tabela de cadastro; 2 indica que você quer a 2ª coluna do intervalo (Descrição); 0 exige correspondência exata.

4) Busque Categoria e Preço

Categoria (em E2):

=PROCV(B2;Produtos.$A$2:$D$100;3;0)

Preço (em F2):

=PROCV(B2;Produtos.$A$2:$D$100;4;0)

Colunas fixas: por que travar o intervalo

Ao copiar a fórmula para baixo, você quer que o intervalo do cadastro permaneça o mesmo. Por isso, use $ no intervalo (Produtos.$A$2:$D$100). Assim, o Calc não “desloca” a área de busca ao arrastar a fórmula.

Como lidar com “não encontrado” usando SEERRO

Se o código não existir no cadastro, o PROCV retorna erro (geralmente #N/D). Para evitar poluir a planilha, envolva a busca com SEERRO e retorne vazio ou uma mensagem.

Descrição com tratamento (em D2):

=SEERRO(PROCV(B2;Produtos.$A$2:$D$100;2;0);"")

Preço com mensagem (em F2):

=SEERRO(PROCV(B2;Produtos.$A$2:$D$100;4;0);"Código não cadastrado")

PROCH (quando a tabela está “deitada”)

Se o cadastro estiver com códigos na primeira linha e atributos nas linhas abaixo, use PROCH. Exemplo de fórmula (buscando o preço na 4ª linha do intervalo):

=PROCH(B2;Produtos.$A$1:$Z$4;4;0)

Na prática, para cadastros, prefira tabelas “em pé” e PROCV (ou as alternativas abaixo), pois é mais fácil manter e expandir.

ÍNDICE + CORRESP: busca mais flexível e robusta

A combinação ÍNDICE + CORRESP é uma alternativa ao PROCV com vantagens importantes:

  • Não depende de “número da coluna” fixo dentro do intervalo (você pode localizar a coluna pelo cabeçalho).
  • Permite buscar valores mesmo que a coluna-chave não seja a primeira do intervalo.
  • Fica mais resistente a inserções/remoções de colunas no cadastro.

Passo a passo: buscar Descrição com ÍNDICE + CORRESP

Na aba Lancamentos, em D2 (Descrição):

=ÍNDICE(Produtos.$B$2:$B$100;CORRESP(B2;Produtos.$A$2:$A$100;0))

Leitura: CORRESP encontra a posição (linha) do CodProduto de B2 dentro da lista Produtos.$A$2:$A$100 com correspondência exata (0). Depois, ÍNDICE retorna o valor dessa mesma linha na coluna de Descrição (Produtos.$B$2:$B$100).

Com tratamento de erro:

=SEERRO(ÍNDICE(Produtos.$B$2:$B$100;CORRESP(B2;Produtos.$A$2:$A$100;0));"")

Buscar Categoria e Preço com ÍNDICE + CORRESP

Categoria (em E2):

=SEERRO(ÍNDICE(Produtos.$C$2:$C$100;CORRESP(B2;Produtos.$A$2:$A$100;0));"")

Preço (em F2):

=SEERRO(ÍNDICE(Produtos.$D$2:$D$100;CORRESP(B2;Produtos.$A$2:$A$100;0));"")

Versão mais “à prova de mudanças”: localizar a coluna pelo cabeçalho

Se você teme que a ordem das colunas em Produtos mude, você pode usar CORRESP também para achar a coluna pelo nome do cabeçalho. Exemplo: buscar o campo cujo cabeçalho é Preco.

Supondo cabeçalhos em Produtos.A1:D1 e dados em Produtos.A2:D100:

=SEERRO(ÍNDICE(Produtos.$A$2:$D$100;CORRESP(B2;Produtos.$A$2:$A$100;0);CORRESP("Preco";Produtos.$A$1:$D$1;0));"")

Aqui, o primeiro CORRESP encontra a linha do produto; o segundo encontra a coluna onde está “Preco”. Isso evita ajustar o número da coluna quando alguém reorganiza o cadastro.

Boas práticas para chaves e qualidade da busca

Garanta unicidade no cadastro

Se houver códigos duplicados em Produtos, PROCV e CORRESP retornarão a primeira ocorrência, o que pode gerar resultados incorretos. Mantenha o CodProduto único.

Padronize o tipo do código (texto vs número)

Um erro comum é ter CodProduto como texto em uma aba e como número em outra. Exemplo: 001 pode virar 1 se for tratado como número. Padronize o formato e, se necessário, defina a coluna como Texto no cadastro e nos lançamentos.

Evite espaços invisíveis

Espaços antes/depois do código fazem a busca falhar. Se você suspeitar disso, uma estratégia é criar uma coluna auxiliar no cadastro com o código “limpo” e buscar por ela. Exemplo de limpeza (em uma coluna auxiliar):

=ARRUMAR(A2)

Depois, use essa coluna auxiliar como base da busca.

Exemplo completo: calcular Total no lançamento com preço buscado

Depois de trazer o Preco para a aba Lancamentos, você pode calcular o total por linha. Supondo Qtd em C2 e Preco em F2:

=SEERRO(C2*F2;"")

Isso evita mostrar erro quando o preço ainda não foi encontrado (por código inválido ou célula vazia).

Checklist rápido de diagnóstico (quando a busca não funciona)

  • Correspondência exata: confirme que o último argumento do PROCV/PROCH está em 0 (ou FALSO).
  • Intervalo correto: a coluna-chave precisa ser a primeira do intervalo no PROCV; no ÍNDICE+CORRESP, confirme as faixas de linha.
  • Intervalo travado: use $ para não deslocar a tabela ao copiar.
  • Tipo do código: texto e número não casam; padronize.
  • Duplicidade: códigos repetidos no cadastro retornam a primeira ocorrência.
  • Tratamento de erro: use SEERRO(...;"") para manter a planilha limpa enquanto você corrige cadastros.

Agora responda o exercício sobre o conteúdo:

Ao usar PROCV para trazer dados do cadastro de Produtos para a aba de Lançamentos, qual configuração ajuda a evitar resultados incorretos e mantém a busca consistente ao copiar a fórmula para baixo?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

No PROCV para cadastros, a busca deve ser exata (0 ou FALSO) para não retornar itens errados. Ao copiar a fórmula, travar o intervalo com $ impede que a área de busca se desloque.

Próximo capitúlo

Formatação no LibreOffice Calc para leitura e padronização de relatórios

Arrow Right Icon
Capa do Ebook gratuito LibreOffice Calc: Planilhas para Controle e Relatórios
46%

LibreOffice Calc: Planilhas para Controle e Relatórios

Novo curso

13 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.