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í:
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)),"")
Tenga en cuenta que la última fórmula se basa en el hecho de que B1:B3
es 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)),"")