Excel: mover datos de filas duplicadas a nuevas columnas

Excel: mover datos de filas duplicadas a nuevas columnas

Tengo filas duplicadas que representan clientes que compraron artículos diferentes. El artículo comprado está en una columna. Me gustaría moverlos a columnas separadas para poder importarlos a un programa diferente. Entonces mis datos se ven así:

captura de pantalla cargada de Excel

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

Me gustaría que los datos sobre los artículos comprados se movieran a columnas separadas, algo como esto:

John   book   ball   bat

Tom    book    -     bat

Kate    -     ball    -

Donde cada libro, pelota y bate tiene su propia columna.

Respuesta1

Esta fórmula, completada desde A8, enumerará los nombres de los clientes y eliminará los duplicados:

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

Esta es una fórmula matricial, por lo que se debe ingresar con CTRLShiftEnter, en lugar de solo Enter.

Esta fórmula, completada hacia la derecha y hacia abajo desde B8, enumerará las 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)),"")

ingrese la descripción de la imagen aquí

Tenga en cuenta que la última fórmula se basa en el hecho de que B1:B3es una lista ordenada de compras. Probablemente esto sea una coincidencia y una lista similar podría encontrarse en cualquier lugar. Si la lista fuera horizontal, en lugar de vertical, la fórmula sería más sencilla. Digamos que la lista estaba en E1:G1, entonces la fórmula sería:

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

Y una fórmula matricial similar a la primera, completada directamente desde E1, podría enumerar las compras allí:

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

información relacionada