Ok, vamos lá
=PROC(2;1/(A2:A19=$D2);B2:B19)
Primeiro que aqui, o que é usado é PROC() e não PROCV().
O PROC(): valor procurado, matriz de busca, matriz de resultados.
Quanto a ser ou não ser matricial, o PROC funcionou bem em ambos os casos (ou seja, com Enter ou com Ctrl+Shift+Enter deu o mesmo resultado)
Segundo, este foi um caso interessante onde se aproveitou de uma caractetrística do PROC que pode ser considerada limitação, para atingir o objetivo.
Para que o PROC() funcione, ele precisa necessariamente ter a coluna de busca classificada em ordem crescente. O que no exemplo, não é o caso.
A matriz de busca neste exemplo é uma matriz de comparações do intervalo de CPFs com o conteúdo da célula de busca, porém colocando o "1/" no começo da matriz, tem-se uma matriz de 1s (uns) e de erros de divisão por zero.
O interessante está no valor procurado, que neste caso é 2. que não existe na matriz de busca que deveria ser em ordem crescente. Então, o PROC() por padrão retorna o resultado (da coluna de resultados) do último valor mais próximo do valor procurado, ou seja, do último 1.
Não sei se fui claro, mas vou tentar mostrar passo a passo:
passo a passo:
=PROC(2; 1/(A2:A19=$D2); B2:B19)
distrinchando:
=PROC(2; 1/{VERDADEIRO; FALSO;FALSO;FALSO;FALSO;FALSO;FALSO; FALSO;FALSO;VERDADEIRO;FALSO;FALSO;FALSO; FALSO;VERDADEIRO; FALSO;FALSO;FALSO}; B2:B19)
Essa é uma matriz de verdadeiros e falsos, que pode ser considerada uma matriz de 1s e 0s. No próximo passo, o Excel divide 1 pela matriz.
Resultando:
=PROC(2; {1;#DIV/0!; #DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!; #DIV/0!;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!; #DIV/0!; 1 ; #DIV/0!;#DIV/0!;#DIV/0!}; B2:B19)
Dentro da explicação acima, agora ficou simples:
O PROC() procurou de cima pra baixo, pq ele funciona assim.
Procurou o 2. Na matriz de busca, não existe o 2. Então ele foi até o fim, procurando.
Quando viu que não encontrou, retornou o item equivalente ao último 1.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 18/12/2013 11:34 am