Notifications
Clear all

Aprendendo a usar o CORRESP()

11 Posts
4 Usuários
0 Reactions
2,135 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

CORRESP()

O CORRESP() é uma função de busca onde os três parâmetros são:
O QUE você está procurando
AONDE você está procurando (uma matriz unidimensional, ou seja, de uma linha, ou de uma coluna)
Tipo Correspondência se é valor igual (0) ou aproximado (-1 ou 1)
Esta função retornará a posição da célula dentro do intervalo aonde o valor se encontra. E se não encontrar o valor, retornará o erro #N/D (ou #N/A)

Aí você se pergunta, mas pra que eu iria querer saber a posição do item procurado no intervalo? É exatamente isso que acaba confundindo as pessoas. O CORRESP() é muito utilizado em conjunto com outras funções, como ÍNDICE() ou DESLOC() ou PROCV() ou outras. Se utilizado sozinho, retornará um número e o mais importante é saber utilizar este número a seu favor.

Então vamos lá. Como dominar a arte do CORRESP()
1) Imagine uma lista de nomes únicos que vá de C3 até C9: Maçã, Pêra, Uva, Abacate, Nêspera, Lixia, Caqui
2) Em G3, digite a fórmula:

=CORRESP(F3;$C$3:$C$9;0)

3) Em F3 digite os nomes das frutas da lista;
4) Veja que se você digitar Abacate em F3, a função em G3 será calculada e exibirá o resultado 4, que vem da célula C6. Este 4 significa que abacate é o quarto item dentro do intervalo. Vai lá e conte,confira. Verá que é de fato o quarto item.

Observações
1) Nos casos em que o tipo de correspondência é 0, a classificação da matriz procurada é irrelevante;
2) A função retorna o número da posição do item dentro da matriz, e não o número da linha (por isso que dei o exemplo de C3:C9, o valor retornado foi 4 e o número da linha se for ver, é 6);
3) O item procurado pode ser montado com caracteres curinga, ou seja, "?" ou "*".
4) Normalmente o resultado da função será utilizado em outra função, podendo esta função estar escrita dentro da que usa este resultado
5) Se houver itens repetidos, o CORRESP() retornará somente a posição do primeiro, interrompendo a execução a partir do momento que encontrou o item.

Pode parar por aqui que é 99% das necessidades de uso do CORRESP(). Daqui pra frente é só pra completar o tutorial, mas este recurso na prática quase nunca é utilizado.

'==============================================================

Agora, a dúvida é: e o Tipo_Corresponência? Para ser sincero, em 10 anos de experiência, eu nunca precisei usar o CORRESP() com tipo de corresponência diferentre de 0, ou seja, que não fosse exata. Mas, como este é um tutorial, vou falar brevemente como são usados.

Para casos onde o valor procurado não existe na matriz procurada, mas ainda assim você necessariamente precisa de uma resposta ao invés do erro (#N/D) você pode usar os tipos -1 e 1. Para usar o tipo_correspondência diferente de 0, a matriz procurada precisa necessariamente estar classificada da seguinte maneira:

Tipo 1: o corresp localizará na matriz procurada (aonde) o maior valor que é menor do que ou igual a valor procurado (o que). A matriz procurada deve estar classificada em ordem crescente.

Tipo -1: o corresp localizará na matriz procurada (aonde) o menor valor que é maior do que ou igual a valor procurado (o que). A matriz procurada deve estar classificada em ordem decrescente.

Para resumir: Ambos os tipos de correspondência tem por objetivo trazer o resultado anterior ou seguinte ao item procurado, caso ele não exista.
Ou seja, se vc tem uma lista de 1 a 10 (números inteiros), e vc resolve procurar o número 5,3, que é quebrado, os tipos de correspondência -1 e 1, determinarão se o resultado será a posição da célula do número 5 ou do número 6. Forçando assim um resultado. Se o tipo de correspondência for 0, o valor 5,3 não existe na lista e o resultado será #N/D.

 
Postado : 19/07/2013 9:11 am
(@pedro)
Posts: 362
Reputable Member
 

Assim como o do ÍNDICE(), este tutorial foi bem elaborado, e é simples, bela iniciativa!

 
Postado : 19/07/2013 11:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

É bem esse o meu objetivo Pedro, obrigado pelo reconhecimento.
É claro que muitas das funções são combináveis e pode-se chegar muito mais longe, mas para saber combiná-las, é importante saber o que cada uma delas faz, e dominar cada uma para compreender melhor os poderes delas juntas.

Meu próximo post será como combinar o CORRESP não só com o ÍNDICE(), assunto já bastante dissecado, mas também brincar com DESLOC() e PROCV() e PROCH(), etc...

Baseando-se no conceito básico do CORRESP() e usando a criatividade para criar novas combinações, nem o céu será limite!

 
Postado : 19/07/2013 11:38 am
(@pedro)
Posts: 362
Reputable Member
 

Bah que beleza, eu vou acompanhar os próximos ^^

 
Postado : 19/07/2013 11:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Didática simples e objetiva, muito bom!
Foi com um tutorial seu que aprendi a usar range dinâmico, Parabéns Fernando!

Doni

 
Postado : 20/07/2013 6:37 am
(@carlos-w)
Posts: 31
Eminent Member
 

Parabéns pelo tuto, aprendi para que serve essa formulas. Se puder, quando fizer um novo Tutorial me avisa, tenho certeza que irei aprender muito você. Obrigado!

 
Postado : 26/07/2013 9:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pode pedir qualquer função, estou escrevendo os tutorias sempre atendendo a pedidos !

:)

 
Postado : 26/07/2013 9:48 am
(@carlos-w)
Posts: 31
Eminent Member
 

Pode pedir qualquer função, estou escrevendo os tutorias sempre atendendo a pedidos !

:)

Como vc disse que esta aceitando pedidos gosataria de um tuto com COMBINAÇÃO daS formulas DESLOC, INDICE, CORRESP, LINS, SE, PROCV...E POR AI VAI.
Quando fizer me manda um MP por favor..Abraço

 
Postado : 26/07/2013 12:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

kkkkkk OLHA SÓÓÓÓÓÓÓÓ, rs, eu ofereço o dedinho da mão, e ele pede o braço todo incluindo sovaco peludo? auhauhauha

ok sério agora, é assim, eu entendo que o importante é ensinar as partes primeiro, e depois combiná-las...

Portanto, vou lançar um tutorial do SE(), depois um com LINS() / LIN() e COLS() / COL(), depois um Cont.valores(), depois um cont.se(), pq são funções muito utilizadas em combinação com as que você pediu...

qdo eu tiver isso pronto, eu mando, daí, depois dessas, eu consigo escrever as que vc tá pedindo, e referenciar as aulas anteriores para melhor entendimento...

vá acompanhando os tutoriais (e em breve, vídeo-aulas), que meu objetivo lá na frente é chegar aonde você quer e mais longe ainda...

os: PROCV() PROCH() PROC() DESLOC() ÍNDICE() são as campeãs de audiência, e estão no meu radar para logo logo !

 
Postado : 26/07/2013 1:06 pm
(@carlos-w)
Posts: 31
Eminent Member
 

KKKK..Valeu amigão. Ha postei algumas dúvida e ainda ninguém respondeu, será que fiz algo errado ?

 
Postado : 26/07/2013 1:14 pm
(@dfpaulo)
Posts: 21
Eminent Member
 

EXCELENTE TUTORIAL.

este tipo de tutorial é único parabéns, não desmerecendo o site planilhando, pois a meu ver é o melhor que existe. só tem feras aqui. parabéns mais uma vez.

 
Postado : 12/08/2013 6:56 am