Exibindo Números de Pedido uma Única Vez (AKA "Group By")


(Daniel Nagaoka) #1

Há algo que efetuo corriqueiramente em diversas planilhas e, vira e mexe, as pessoas me pedem socorro (apesar de, em princípio, ser super simples). Consideremos o cenário:

image

Suponhamos que eu queira exibir cada pedido ou inclui-los uma única vez em alguma fórmula. Existem várias formas de se fazer isso: podemos grosseiramente remover duplicatas e "dar Ctrl + Z", podemos criar tabelas dinâmicas ou meu método favorito: podemos adicionar uma coluna a mais com dois valores possíveis - VERDADEIRO ou FALSO - que possa ser filtrada.

Lembrando que nosso objetivo é filtrar apenas uma linha de cada pedido e não excluir os pedidos que possuem mais de uma linha, não imagino que o CONT.SE seja a melhor alternativa. Ao invés disso, vamos contar com duas funções:

CORRESP: retorna o número da linha em que encontrou um valor dentro de um vetor
LIN: retorna a linha da célula atual

A partir disso, você já pode estar imaginando onde vamos chegar. O objetivo é fazer uma coluna só, mas quebrarei em três para facilitar a visualização:

image
Encontro a primeira linha onde o pedido ocorre dentro do intervalo.

image
Verifico qual é a linha atual.

image

Por fim, comparo os dois valores, permitindo que eu aplique um filtro para que o pedido apareça uma vez só:

Claro que as colunas C, D e E podem ser resumidas em uma fórmula bem curta:
=CORRESP(A2,A:A,0)=LIN()

E, por ora, é isso! Sei que parece bobo, mas o domínio do CORRESP pode te salvar quando menos esperar e, quando utilizado em combinação com o ÍNDICE, te emancipar do monstruoso PROCV. Ainda postarei sobre minha antipatia com o PROCV. Me aguardem!

A planilha construída neste tópico está disponível para visualização aqui.

Cheers,
~Dan.


#2

Muito bom. Valeu por compartilhar, @dan!

Meu primeiro pensamento seria usar o =CONT.SE para fazer esse filtro, ele só exige um bom controle da trava de colunas/linhas (ex: =CONT.SE(A$2:A2; A2)=1).

Eu não lembrei do =CORRESP nessa situação, mas é mesmo uma boa.

Obs: o =PROCV tem um lugar guardado no meu coração :smile: