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-更多信息在这里