Excel问题(当客户相同时合并一列的内容)

时间:2017-08-02 13:16:51

标签: excel excel-vba excel-formula vba

我有一个问题,我怀疑可能很容易解决,但我似乎无法找到任何关于它的问题。

Customer          Type              Product
Peter             Proactive         Car
Sven              Reactive          Wheels
Sven              Proactive         Wheels
Peter             Proactive         Wheels

我想要的是当客户出现两次,而且类型相同时。和" Peter"一样,产品会加在一起。理想的结果如下:(注意Sven的产品组合,因为类型不同)。

Customer          Type              Product
Peter             Proactive         Car
Sven              Reactive          Wheels
Sven              Proactive         Wheels
Peter             Proactive         Wheels & Car

理想情况下,我想在不使用VBA的情况下执行此操作,是否有任何解决方案?

提前非常感谢你。

2 个答案:

答案 0 :(得分:0)

按客户排序数据,然后使用功能区的“数据”选项卡上的工具按“类型”排序。然后,您可以向已排序的数据添加列。如果第一行排序数据在,例如单元格A2:C2,则将以下公式插入D2

=IF(AND(A2=A1,B2=B1),D1&" & "&C2,C2)

D2中的公式复制到与您的数据对应的列的剩余单元格中。你的累积"文本将在D列中。

如果要保留数据的原始行顺序,请首先添加带有1,2,3,4的索引列,...有效地为数据的每一行添加一个行号。在排序中包括此列,按上述方法添加公式,然后使用“复制/粘贴特殊值”将单元格从公式转换为值。最后对索引列上的数据进行排序以返回原始行排序。

答案 1 :(得分:0)

好的,假设没有进一步的未说明约束,这里有一个需要几个辅助列的解决方案。

enter image description here

列D只是一个索引,列E是前一行的索引号,它与Name和Product的当前行匹配,如果没有前一个匹配行,则为0。数据列表的第一行不能有前一行,因此该行的E和F列分别简单地分配为0和Product值。数据列表的第2行包含E和F列中的公式,这些公式一旦为第二行数据输入,只需将新数据添加到列表中即可向下复制。

请注意,E3中的公式是一个数组公式,并通过同时按下Ctrl,Shift和Enter键从公式栏提交。