如果数据具有相同的主机,则合并数据

时间:2014-09-29 03:19:22

标签: excel excel-formula

首先,我提前抱歉对待我的英语。

如果我有一张桌子喜欢这个(2x5)

  

购买A |橙

     

购买A |苹果

     

购买A |芒果

     

B铺橙

     

B铺苹果

我想引用它们(使用公式)(2x2)

  

购买A |橙子,苹果,芒果

     

B铺橙色,苹果

谢谢

1 个答案:

答案 0 :(得分:0)

根据我的知识,通过代码并不容易。你可以通过一些工作得到结果,但它很麻烦和手动。

我假设您的数据位于A列和B列。

首先,我将在D1和E1中创建两个标题,称为" Shop A"和"商店B" 接下来,我只会在D2和E2中键入1个撇号('符号)。这个不会显示,但会停止excel,稍后会在每个空结果中加上0。

然后我会在D3中加入以下公式:

=IF($A1=D$1,D2&" "&$B1,D2)

这是做什么的:

  1. 如果给定行的列A包含相同的" Shop"作为行 我们正在看,然后......
  2. 从上面的结果中加入字符串,在其后面放置一个空格,然后添加B列中的值
  3. 否则,只需从上面的行中继承上一个结果值。
  4. 然后我会把它拖到E3,因为它变成了:

    =IF($A1=E$1,E2&" "&$B1,E2)
    

    然后我可以向下拖动这两个单元格(即突出显示D3和E3并将它们向下拖动)。

    只要您需要完全覆盖原始行数(在本例中为5),将其向下拖动。最后一个条目是每列的连接字符串。对于您的情况,您最终得到:

     orange apple mango | orange apple
    

    将这两个字符串和粘贴值复制到另一个单元格中。然后你可以再次复制它们,如果你想要它们一个在另一个之上而不是并排,那就转置它们,即:

    orange apple mango
    orange apple
    

    然后只需输入原始列(或复制D1和E1并转置它们)。

    请注意,由于'字符串在开头会有一个空格。我们放入第一个单元格。如果你想修剪它,只需在结果上使用TRIM()函数来删除前导和尾随空格。

    希望这会有所帮助。正如我所说,这是非常耗费人力的,但我从来没有找到一种在excel中有条件地连接字符串的好方法,而没有潜入编写VBA。

    注意,我不使用CONCATENATE()函数,因为它不插入空格。你可以这样做:

    =IF($A1=D$1,CONCATENATE(D2," ",$B1),D2)
    

    与我合并它们的效果相同。