我有这个excel工作表
A B c
foo1 joo1 loo1
foo1 joo2 loo2
foo2 joo3 loo3
foo2 joo4 loo4
foo2 joo5 loo5
现在我想要这个
A B c
foo1 joo1, joo2 loo1, loo2
foo2 joo3, joo4, joo5 loo3, loo4, loo5
我该怎么做,最好是用GUI?
答案 0 :(得分:2)
如果你愿意写一个宏...
单击第一个“foo1”单元格并运行它。它将加入foo1,然后加入foo2,直到它击中空白单元格。如果你从来没有写过宏,也许我们可以带你去。
Sub JoinThem() ' Go until blank cell (first click at upper left of range) Do While ActiveCell.Value <> "" ' If this row macthes the next row If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then ' Join first column overwriting the values ActiveCell.Offset(0, 1) = ActiveCell.Offset(0, 1).Value & ", " & ActiveCell.Offset(1, 1).Value ' and Join the second column too ActiveCell.Offset(0, 2) = ActiveCell.Offset(0, 2).Value & ", " & ActiveCell.Offset(1, 2).Value ' Since we placed the data into one row get rid of the row ActiveCell.Offset(1, 0).EntireRow.Delete Else ' Next row does not match, move down one ActiveCell.Offset(1, 0).Select End If Loop End Sub
答案 1 :(得分:0)
很高兴你找到了解决方案。我还推荐了一个数据透视表。无需编码,只需拖放即可将字段拖放到“行”框中。然后让Excel为您过滤掉重复项。
答案 2 :(得分:0)
您也可以使用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个信息here