Excel - movendo dados de linhas duplicadas para novas colunas

Excel - movendo dados de linhas duplicadas para novas colunas

Tenho linhas duplicadas que representam clientes que compraram itens diferentes. Os itens adquiridos estão em uma coluna. Gostaria de movê-los para colunas separadas para poder importar para um programa diferente. Então meus dados se parecem com algo assim:

captura de tela carregada do Excel

John  book          
John  ball          
John  bat           
Tom   book          
Tom   bat           
Kate  ball

Gostaria que os dados dos itens comprados fossem movidos para colunas separadas, algo assim:

John   book   ball   bat

Tom    book    -     bat

Kate    -     ball    -

Onde cada livro, bola e taco tem sua própria coluna.

Responder1

Esta fórmula, preenchida a partir de A8, listará os nomes dos clientes, removendo duplicatas:

=IFERROR(INDEX($A$1:$A$6,MATCH(0,COUNTIF(A$7:A7,$A$1:$A$6),0)),"")

Esta é uma fórmula de matriz, portanto deve ser inserida com CTRLShiftEnter, em vez de apenas Enter.

Esta fórmula, preenchida à direita e abaixo de B8, listará as compras de cada cliente:

=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=INDEX($B$1:$B$3,COLUMN(A1))))>0, INDEX($B$1:$B$3,COLUMN(A1)),"")

insira a descrição da imagem aqui

Observe que a última fórmula depende do fato de B1:B3ser uma lista ordenada de compras. Provavelmente isso é coincidência e uma lista semelhante pode estar localizada em qualquer lugar. Se a lista fosse horizontal, em vez de vertical, a fórmula seria mais simples. Digamos que a lista estivesse em E1:G1, então a fórmula seria:

=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=E$1))>0,E$1,"")

E uma fórmula de matriz semelhante à primeira, preenchida desde E1, poderia listar as compras ali:

=IFERROR(INDEX($B$1:$B$6,,MATCH(0,COUNTIF($D1:D1,$B$1:$B$6),0)),"")

informação relacionada