O VBA pode não ser necessário. Ajudante Colunas são seu amigo aqui. Experimente as fórmulas abaixo
- assumindo que
Column6éEeColumn 8éGe as colunas auxiliares abaixo estão iniciando emColumn9/H - se você tiver seus dados em
DataTable, terá outra opção de sintaxe
R1C1
-
=Concatenate( E2, F2, G2 )< -H -
=Concatenate( E2, G2 )< -I -
=CountIfs( I:I, I2 )< -J -
=Row()< -K -
=IF( J2=1, H1, INDEX(H:H, AGGREGATE( 15,6,K:K/--(I:I=I2), 1 ) ) )< -L
A coluna L retornará o primeiro valor de linha encontrado na Coluna H para o valor de concatenação exclusivo na Coluna I . Se o seu conjunto de dados for muito grande, o método Index( Aggregate() ) poderá estourar e falhar. Mas supondo que funcione, você pode Copy-Paste Values Only da coluna L em uma nova planilha e Remover duplicatas ( Alt + A + M para abrir o diálogo). Se você delimitar a concatenação na Coluna H , ela ajudará a dividir os valores novamente em colunas na nova planilha.