Excel - 将重复行的数据移动到新列

Excel - 将重复行的数据移动到新列

我有重复的行,代表购买了不同商品的客户。购买的商品在一列中。我想将它们移动到单独的列中,以便可以导入到不同的程序中。所以我的数据看起来像这样:

上传 Excel 截图

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

我希望将购买物品的数据移动到单独的列中,如下所示:

John   book   ball   bat

Tom    book    -     bat

Kate    -     ball    -

其中每本书、球和球棒都有自己的列。

答案1

此公式从 向下填充A8,将列出客户名称并删除重复项:

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

这是一个数组公式,因此必须用 来输入CTRLShiftEnter,而不是仅仅Enter

此公式从 开始向右向下填写B8,将列出每个客户的购买情况:

=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)),"")

在此处输入图片描述

请注意,最后一个公式依赖于B1:B3是购买的有序列表这一事实。这可能是巧合,类似的列表可以位于任何地方。如果列表是水平的,而不是垂直的,公式会更简单。假设列表在 中E1:G1,那么公式将是:

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

与第一个类似的数组公式,从 E1 开始填充,可以在那里列出购买记录:

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

相关内容