Capítulo 09: Busca e Referência I (A Função PROCV e Dicionários de Dados)
🎯 Objetivo da Aula
O PROCV (Procura Vertical) é a função mais famosa e utilizada em todo o universo corporativo. Ela é a “ponte” que permite conectar duas tabelas separadas utilizando um identificador comum (como um Código de Produto, CPF ou Placa de Veículo).
Nesta aula, você aprenderá a:
- Conectar tabelas no padrão Chave-Valor (Key-Value Pair).
- Compreender os 4 argumentos mandatórios do
PROCV. - A diferença crucial entre Busca Exata (
0/FALSO) e Busca Aproximada (1/VERDADEIRO). - Identificar as limitações estruturais do
PROCV(a “cegueira para a esquerda” e vulnerabilidade à inserção de colunas). - O paralelo computacional com estruturas de dados Hash Map / Dicionário na programação.
🏢 O Cenário Prático (Seu Desafio)
Situação: A equipe de vendas e expedição da FastLog gerencia um portfólio com mais de 1.000 tipos de caixas, fitas, embalagens e paletes. Toda vez que um pedido é emitido, os operadores perdem até 5 minutos folheando uma tabela impressa para encontrar a descrição e o preço unitário do item.
Missão: Você deve construir um Formulário de Pedido Inteligente. Quando o operador digitar apenas o código do produto (ex: LOG-102), o Excel deve “viajar” até a base de dados do estoque, localizar o item e preencher automaticamente a Descrição, a Categoria e o Preço Unitário.
🧠 Fundamentos: A Teoria das Buscas Relacionais
1. O Conceito de Chave Primária e Chave Estrangeira
Na ciência da computação e nos bancos de dados relacionais (SQL), uma Chave Primária (Primary Key) é um código único que identifica exclusivamente um registro (ex: não existem dois produtos com o mesmo código LOG-101).
O PROCV busca essa chave na primeira coluna da matriz e devolve o atributo desejado que está alinhado na mesma linha:
graph LR
Input["Código Procurado: 'LOG-102'"] -- "1. PROCV busca na Coluna 1" --> Col1["Coluna 1 (Chaves):<br/>LOG-101<br/>LOG-102 [ENCONTRADO!]<br/>LOG-103"]
Col1 -- "2. Anda até o Índice de Coluna 3" --> Col3["Coluna 3 (Preços):<br/>R$ 2,50<br/>R$ 4,90 [RETORNA ESSE]<br/>R$ 85,00"]
Col3 --> Output["Resultado na Célula: R$ 4,90"]
style Col1 fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
style Col3 fill:#217346,stroke:#fff,stroke-width:2px,color:#fff2. A Anatomia dos 4 Argumentos do PROCV
valor_procurado: O que você tem em mãos? (A chave única que você quer pesquisar, ex: a célula onde o usuário digitou o códigoE2).matriz_tabela: Onde está a lista completa de dados? (O intervalo onde a primeira coluna obrigatoriamente contém as chaves, ex:$A$2:$C$50).núm_índice_coluna: Em qual coluna física da matriz está a resposta que você deseja resgatar? (Contando1para a primeira coluna,2para a segunda,3para a terceira…).[procurar_intervalo]: O tipo de correspondência:0(ouFALSO): Correspondência Exata (Usado em 99% dos casos no mundo corporativo. Se o código não existir, retorna#N/D).1(ouVERDADEIRO): Correspondência Aproximada (Usado para faixas numéricas de impostos ou tabelas de desconto; exige que a tabela esteja em ordem crescente).
A Falha Fatal do 0 Esquecido:
Se você esquecer de colocar o ; 0 no final do seu PROCV, o Excel assumirá busca aproximada. Em sistemas logísticos, isso pode fazer o sistema faturar o preço de uma embalagem plástica no lugar de um palete de madeira caro! Coloque sempre ; 0.
3. As Limitações Estruturais do PROCV
Embora poderoso, o PROCV possui dois pontos fracos que você deve conhecer como futuro analista:
- Ele só busca para a direita: A chave de busca DEVE estar na coluna 1. Ele nunca consegue olhar para colunas à esquerda.
- Índice Estático Rígido: Se alguém inserir uma nova coluna no meio da tabela do estoque, o número
3da sua fórmula continuará apontando para a terceira coluna, trazendo o dado errado! (Nas próximas aulas, aprenderemosÍNDICE/CORRESPePROCXpara superar isso).
4. 🌐 Quadro Bilíngue (PT-BR vs EN)
| Função (Português) | Equivalente em Inglês | Observação |
|---|---|---|
PROCV | VLOOKUP | Vertical Lookup (Busca em colunas verticais). |
PROCH | HLOOKUP | Horizontal Lookup (Busca em linhas horizontais). |
5. 💡 Visão de Programador: Tabelas Hash e Dicionários
Em linguagens modernas como JavaScript ou Python, o PROCV equivale a acessar um objeto Map / Dicionário através de uma chave:
📖 Exemplo Guiado: Agenda Telefônica Automatizada
Passo a Passo
- Em A1:B4 monte a base de contatos:
Matrícula|Nome_Colaborador101|Ana Beatriz102|Carlos Silva103|Mariana Souza
- Em D1 digite
Digite a Matrícula:. Em E1, digite102. - Em D2 digite
Nome Encontrado:. - Na célula E2, digite a fórmula:
=PROCV(E1; A1:B4; 2; 0) - O Excel retornará imediatamente
"Carlos Silva".
🛠️ Prática Obrigatória 1: Emissor Inteligente de Pedidos de Compra
Passo 1: Construindo o Banco de Estoque (Base Mestra)
Na Planilha 1, insira a tabela mestre de produtos nas células A1 até D6:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Cód_Item | Descrição_Produto | Categoria | Preço_Unitário |
| 2 | 1001 | Caixa de Papelão Reforçada | Embalagem | 3,50 |
| 3 | 1002 | Fita Gomada com Fio | Fechamento | 12,00 |
| 4 | 1003 | Palete Plástico 1000kg | Armazenagem | 110,00 |
| 5 | 1004 | Filme Stretch Manual | Proteção | 45,00 |
| 6 | 1005 | Cantoneira de Papelão | Proteção | 1,80 |
Passo 2: Estruturando o Formulário de Emissão de Pedidos
Na mesma planilha, a partir da coluna F, monte a interface do operador (F1 até J5):
- F1:
Cód_Digitado| G1:Descrição_Auto| H1:Preço_Unit| I1:Qtd_Pedida| J1:Subtotal - F2:
1003| I2:10 - F3:
1001| I3:50 - F4:
1005| I4:200
Passo 3: Programando as Fórmulas de Busca Relacional
- Na célula G2, busque a Descrição (Coluna 2 da tabela mestra):
=PROCV(F2; $A$2:$D$6; 2; 0) - Na célula H2, busque o Preço Unitário (Coluna 4 da tabela mestra):
=PROCV(F2; $A$2:$D$6; 4; 0) - Na célula J2, calcule o Subtotal matemático:
=H2 * I2 - Selecione G2:J2 e arraste até a linha 4.
- Formate as colunas H e J como Moeda (R$).
✅ Resultado Esperado (Prática 1)
| F | G | H | I | J | |
|---|---|---|---|---|---|
| 1 | Cód_Digitado | Descrição_Auto | Preço_Unit | Qtd_Pedida | Subtotal |
| 2 | 1003 | Palete Plástico 1000kg | R$ 110,00 | 10 | R$ 1.100,00 |
| 3 | 1001 | Caixa de Papelão Reforçada | R$ 3,50 | 50 | R$ 175,00 |
| 4 | 1005 | Cantoneira de Papelão | R$ 1,80 | 200 | R$ 360,00 |
🛠️ Prática Obrigatória 2: Busca Aproximada para Tabela Progressiva de Fretes
Quando calculamos faixas de desconto de frete por quilometragem, a busca exata falha porque a distância exata pode não estar na tabela. Usamos a Busca Aproximada (1)!
Passo 1: A Tabela de Tarifas por Faixa de KM
Na Planilha 2 (renomeie para Faixas_Frete), crie:
- A1:
Distância_Mínima (KM)| B1:Taxa_Por_KM (R$) 0|3,00(De 0 a 99 km)100|2,50(De 100 a 299 km)300|2,00(De 300 a 499 km)500|1,60(Acima de 500 km)
(Atenção: A primeira coluna DEVE estar em ordem crescente).
Passo 2: O Simulador com PROCV Aproximado (1)
- Em D1:
Distância da Rota:. Em E1: digite250(km). - Em D2:
Tarifa Aplicável:. - Na célula E2, digite:
=PROCV(E1; $A$2:$B$5; 2; 1). - O Excel identificará que 250 está entre 100 e 300, retornando perfeitamente R$ 2,50.
📤 Instruções de Entrega (Microsoft Teams)
- Salve seu arquivo como:
Atividade_09_SeuNome_SeuSobrenome.xlsx - No Microsoft Teams, envie na tarefa “Capítulo 09 - Busca com PROCV”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica
Você acabou de aplicar o conceito fundamental de Modelagem de Bancos de Dados Relacionais. Em vez de repetir nomes e preços em cada linha de pedido, você normalizou os dados em uma tabela mestre e conectou via chave primária.
🔥 Desafio de Fixação: Blindando o PROCV com SE.NÃO.DISP
No formulário da Prática 1, se você apagar o código em F2, a fórmula exibirá #N/D.
Altere a fórmula da célula G2 para exibir "Código Inválido" em vez do erro:
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.
- O que significa PROCV e para que serve essa função?
- Quais são os 4 argumentos do PROCV?
- Qual a diferença entre busca exata (0) e busca aproximada (1) no PROCV?
- O que acontece se você esquecer de colocar o “0” no final da fórmula PROCV?
- Explique a “cegueira para a esquerda” do PROCV — o que isso significa?
- Por que a primeira coluna da matriz de busca precisa conter as chaves (identificadores únicos)?
- O que é uma Chave Primária, no contexto de bancos de dados?
- Qual estrutura de dados em Python é equivalente ao funcionamento do PROCV?
- Em que situação é indicado usar busca aproximada (1) em vez de busca exata (0)?
- Cite uma limitação estrutural do PROCV relacionada à inserção de novas colunas na tabela.