Excel连接行

我有这个Excel工作表

AB c foo1 joo1 loo1 foo1 joo2 loo2 foo2 joo3 loo3 foo2 joo4 loo4 foo2 joo5 loo5 

现在我想要这个

 AB c foo1 joo1, joo2 loo1, loo2 foo2 joo3, joo4, joo5 loo3, loo4, loo5 

我如何做到这一点,最好与GUI?

如果你愿意写一个macros…

点击第一个“foo1”单元格并运行它。 它会joinfoo1和foo2,直到它到达一个空白的单元格。 如果你以前从来没有写过一个macros,那么也许我们可以通过它。

 Sub JoinThem()
    '转到空白单元格(首先在范围的左上angular单击)
   做虽然ActiveCell.Value <>“”
       '如果这一行macthes下一行
      如果ActiveCell.Value = ActiveCell.Offset(1,0).Value然后
          'join第一列覆盖值
          ActiveCell.Offset(0,1)= ActiveCell.Offset(0,1).Value&“,”&ActiveCell.Offset(1,1).Value
          '并join第二栏
          ActiveCell.Offset(0,2)= ActiveCell.Offset(0,2).Value&“,”&ActiveCell.Offset(1,2).Value
          “因为我们把数据放在一行中摆脱了行
          ActiveCell.Offset(1,0).EntireRow.Delete
      其他
          '下一行不匹配,下移一行
          ActiveCell.Offset(1,0)。select
      万一
   循环 
结束小组

很高兴你find了解决办法。 我也推荐了一个数据透视表。 不需要编码,只需将您的字段拖放到“行”框中即可。 然后让Excel为您筛选重复项。

也可以使用Salstat2 ,以及以下步骤

1-通过使用文件菜单中打开的选项导入数据

2-进入脚本面板,你应该写

 # getting the colums res= group() res.xdata= [ grid.GetCol('A')] res.ydata= [ grid.GetCol('B'), grid.GetCol('C')] res.yvalues= ['concat(B)','concat(C)'] # concat is a function used to concatenate the data report.addPage() # adding a new sheet to put the results for lis in res.getAsRow(): report.addRowData( lis) # adding the results row by row 

3-更多信息在这里