Ir ao conteúdo
  • Cadastre-se

Como filtrar uma coluna com itens repetido baseado em 3 outras colunas?


Ir à solução Resolvido por minoso,

Posts recomendados

Tenho um problema aqui, veja se pode me ajudar.
minha tabela possui 4 principais colunas;
Col1 = Serial
Col2 = Status
Col3 = Desc
Col4 = Data
onde quando a coluna 1 possuir dados repetidos estes devem ser unicos, assim posteriormente então tenho que analisar a coluna 2 que pode conter Fail ou Pass, 
quando existir 2 fails devo descartar o mais velho por data Col4.
quando existir 1 fail e 1 pass devo descartar o fail.
quando existir 2 pass devo então analisar a coluna 3 que pode conter Null ou Rework, e devo descartar então o Null.
pode existir outras combinações como 3 ou mais Pass, onde devo analisar a coluna 3 e manter o que for Rework e depois analisar por data Col4 mantendo então apenas o ultimo Rework. O resultado fica assim: Col1:1234  Col2:Pass  Col3: Rework  Col4: Ultima data.

Link para o comentário
Compartilhar em outros sites

  • Solução

@Chico Rodrigues

 

Usei a fórmula abaixo para cada campo que quero visualizar. Vou tentar explicar a lógica de cada componente dela, vamos nos falando.

 

Fórmula:

=PROCV(CONCATENAR($B$17;"-";CONT.SE($B$2:$B$13;$B$17));$A$1:$G$13;COL();0)

 

Depuração da fórmula:

CONT.SE($B$2:$B$13;$B$17) = estou descobrindo quantos registros o serial na célula B17 possui na tabela

CONCATENAR($B$17;"-";CONT.SE($B$2:$B$13;$B$17)) = estou concatenando o valor da B17 (o serial procurado) com o número contado na linha (azul) acima). Ou seja, se o serial ABC possuir 4 registros, essa linha vai retornar ABC-4

PROCV = então pegamos a condição ABC-4 produzida pela fórmula acima e fazemos um PROCV simples na tabela original para puxar cada campo

COL() = retorna o número da coluna em que a célula está sendo formulada. Por exemplo, se inserir essa fórmula na coluna A, ela retorna 1, na coluna B, 2... e por aí vai. Isso foi utilizado para otimizar a fórmula do PROCV em seu 3º atributo, índice da coluna, você pode tanto deixar essa fórmula como inserir os números das colunas manualmente.

 

Para ela funcionar, criei uma coluna depois e uma antes da sua tabela. Sendo:

 

Coluna J: Conta via fórmula quantos registros o serial específico tem na tabela (é importante que os registros sejam sempre organizados por SERIAL para ela funcionar, ou seja, com a exata disposição que você me passou na tabela original

 

Nova coluna A: é a concatenação da coluna B com a coluna J, formando um indicador de qual é o registro do serial que estamos buscando. Por exemplo, se o serial 1234 tem 4 registros, ele vai criar na coluna A o seguinte resultado

1234-1

1234-2

1234-3

1234-4

 

Assumindo então que todo último registro é o que vence todas as condições que você listou no primeiro post desse tópico, capturamos então, via PROCV, essa linha com base na concatenação acima.

 

A ideía é deixar a coluna A e J oculta.

 

No anexo tem a aplicação disso tudo. 

 

Essa é uma das soluções, um outro jeito mais complexo e completo (anti-usuário) seria através de Macro, mas para a necessidade atual acredito que essa forma lhe atenda.

 

Espero que ajude!

regra.xlsx

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Chico Rodrigues

 

É importante que quando for adaptar a fórmula para a planilha em que realmente ela fará uso, você precisa saber que as referências estão trancadas e que a fórmula, exatamente como postei, pode deixar de funcionar se inserida em um layout novo. Novamente, tanto a explicação quanto o anexo que postei são para lhe auxiliar com a lógica do processo e o que usar para fazer acontecer.

 

De qualquer forma, se depois de você tentar não funcionar, posta o arquivo que lhe ajudo a adaptar a fórmula para o novo layout.

 

Boa sorte!

Link para o comentário
Compartilhar em outros sites

@minoso,

Muito obrigado pela atenção.

 

* a data vence somente quando são iguais os fails ou tenho 3 pass por exemplo .

Col B: 123 Col C:PASS Col D: Null 

Col B: 123 Col C:PASS Col D: Rework

Col B: 123 Col C:PASS Col D: Rework

 

 

mais uma vez muito obrigado, me ajudou muito.

 

Chico

Link para o comentário
Compartilhar em outros sites

Exatamente @Chico Rodrigues, a fórmula toda passa a funcionar se, e somente se, a ordem de registro do serial estiver inserida em ordem. Logo a lógica entenderá que o último registro do serial 123 será a linha que você quer retornar.

 

Se o post que eu fiz ajudou, não deixe de curtir e marcar como 'melhor resposta', isso me ajuda no fórum ;)

 

Se precisar de algo mais, só criar o tópico! Estou de olho :D

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...