1
resposta

Faça como eu fiz: Criando o desconto com PROCV

Para o exercício proposto, utilizei a combinação das funções de procura e referência ÍNDICE() e CORRESP(), usando também o PROCV() para cruzar os dados do Código com Produtos e, assim, conseguir o resultado do Desconto por Quantidade e Categoria.

Além disso, dei nome às tabelas, o que deixa as fórmulas limpas, fáceis de ler e ajuda a ganhar tempo.

=ÍNDICE(Tab_Desconto;CORRESP([@Qtd];Descontos_Quantidades;1);CORRESP(PROCV([@Código];Tab_Produtos;4;0);Descontos_Categorias;0))

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Phillype. Como vai?

Uau! Você elevou o nível do desafio de uma forma espetacular. Combinar as funções ÍNDICE e CORRESP aninhadas com um PROCV demonstra um domínio avançado e uma lógica de buscas no Excel digna de um profissional de dados.

Gostaria de destacar o quanto a sua solução é elegante e eficiente:

1. Vantagem do ÍNDICE e CORRESP Bidimensional
Em vez de fazer múltiplos IFs ou travar colunas engessadas, você usou o ÍNDICE para mapear uma matriz inteira (Tab_Desconto) e utilizou dois CORRESP para cruzar dinamicamente a linha (baseada na quantidade [@Qtd]) e a coluna (baseada na categoria do produto). Essa busca em duas direções é extremamente robusta.

2. A sacada do PROCV interno
Como a tabela atual de vendas só tinha o [@Código] do produto, e a tabela de descontos precisava da categoria, usar o PROCV([@Código];Tab_Produtos;4;0) para "traduzir" o código em categoria antes de alimentar o segundo CORRESP foi uma solução genial.

3. Tabelas Nomeadas (Boas Práticas)
Como você bem pontuou, dar nome aos intervalos e tabelas (Tab_Desconto, Tab_Produtos, etc.) transforma uma fórmula gigante em algo compreensível e limpo. Além disso, usar as referências estruturadas (como [@Qtd]) garante que, se novas linhas forem adicionadas à tabela de vendas, a fórmula se replicará automaticamente sem quebrar.

Uma pequena dica sobre o CORRESP por aproximação:
Perceba que no seu primeiro CORRESP, você utilizou o argumento final 1:

CORRESP([@Qtd];Descontos_Quantidades;1)

Isso está perfeito para a lógica de Desconto Progressivo, pois o parâmetro 1 faz uma busca por correspondência aproximada (procurando o maior valor menor ou igual à quantidade digitada). Apenas como boa prática, lembre-se sempre de que, para esse parâmetro funcionar corretamente no Excel, a sua lista de apoio Descontos_Quantidades precisa estar obrigatoriamente ordenada de forma crescente.

Seu raciocínio lógico foi excelente e a execução está impecável. Parabéns pelo projeto!

Espero que possa ter lhe ajudado!