Tenho duas colunas de dados, A e B. Gostaria de mesclar essas colunas de forma que apenas os valores exclusivos sejam incluídos na lista final. No momento, estou usando uma fórmula de matriz dehttps://www.get-digital-help.com/2009/06/16/extract-an-unique-distinct-list-from-two-columns-using-excel-2007-array-formula/:
{=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 bem, eu gostaria de evitar fórmulas de matriz, se possível, pois elas retardam significativamente nossos PCs já ruins. Também não podemos usar o VBA por motivos, então isso também não é uma opção.
Há alguma maneira de fazer isso?
Responder1
Bem, encontrei uma maneira de fazer isso que parece estar funcionando por enquanto, mas com certeza não é bonita.
A coluna A possui um conjunto de dados, digamos 200 valores totais.
A coluna B possui um segundo conjunto de dados, digamos 175 valores.
A coluna C verifica se o valor da 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 controla 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, ele lista os valores em A. Ao chegar ao final da lista e começar a encontrar 0s, ele usa o índice criado na coluna E para encontrar o primeiro valor único em B e aumenta até atingir o valor final.
=IF(A2=0,IF(E2>MAX(F:F),"",INDEX(B:B,MATCH(E2,F:F))),A2)
Responder2
Há uma boa discussão sobre como extrair valores únicos e distintos emeste site de tutoriais do Excel.
E a resposta à 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)))
Deixei de lado o IFERROR() mais externo. Espero que isto ajude.