Extrai uma lista de valores exclusivos de duas colunas sem uma fórmula de matriz ou VBA

1

Eu tenho duas colunas de dados, A e B. Eu gostaria de mesclar essas colunas de tal forma que apenas os valores exclusivos sejam incluídos na lista final. No momento, estou usando uma fórmula de matriz de link :

{=IFERROR(IFERROR(INDEX($A$2:$A$20, MATCH(0, COUNTIF($C$1:C1, $A$2:$A$20), 0)), INDEX($B$2:$B$7, MATCH(0, COUNTIF($C$1:C1, $B$2:$B$7), 0))), "")} 

Embora isso funcione maravilhosamente, eu gostaria de evitar fórmulas de array, se possível, já que elas diminuem significativamente nossos PCs que já são ruins. Também não podemos usar o VBA por motivos, o que também não é uma opção.

Existe alguma maneira de fazer isso?

    
por Tock 31.08.2017 / 18:03

2 respostas

0

Bem, eu encontrei uma maneira de fazer isso que parece estar funcionando por enquanto, mas com certeza não é bonito.

A coluna A tem um conjunto de dados, digamos 200 valores totais.

A coluna B tem um segundo conjunto de dados, digamos 175 valores.

A coluna C verifica se o valor na coluna B está presente na coluna A

 =IF(COUNTIF($A$2:$A$750,B2)>0,"Match","No Match")

A coluna E tem uma contagem que apenas registra onde estamos em relação ao final do conjunto de dados na coluna A

=IF(A2=0,MAX($E$1:E1)+1,"")

A coluna F tem uma contagem que aumenta sempre que a coluna C indica um valor único

=IF(C2="No Match",MAX($F$1:F1)+1,"")

A coluna G é onde os dois conjuntos de dados são combinados. Primeiro, lista os valores em A. Quando atinge o final da lista e começa a encontrar 0s, usa o índice criado na coluna E para encontrar o primeiro valor único em B e incrementa até atingir o valor final.

=IF(A2=0,IF(E2>MAX(F:F),"",INDEX(B:B,MATCH(E2,F:F))),A2)
    
por 31.08.2017 / 20:10
0

Há uma boa discussão sobre como extrair valores únicos e distintos em este site de tutoriais do Excel .

E a resposta para sua pergunta é sim, envolve apenas o uso de um INDEX () extra para cada parte. Aqui está a modificação:

=IFERROR(INDEX($A$2:$A$20,MATCH(0,INDEX(COUNTIF($C$1:C1,$A$2:$A$20),0),0)),INDEX($B$2:$B$7,MATCH(0,INDEX(COUNTIF($C$1:C1,$B$2:$B$7),0),0)))

Eu deixei o IFERROR mais externo (). Espero que isso ajude.

    
por 31.08.2017 / 21:16