我怎样才能连接行的文本与逗号在Excel中?
我有一个excel数据如下,我想连接按逗号分隔的技能按照这样的人名;
Irakli Beridze | C#, Python, Java Parpali Zurashvili | C++, C
我可以根据以下的情况来实现,但是我有n个数据行。
你可以使用像这样的帮助列来实现:
-
插入filter并按名称sorting:
-
在C2单元格中,input公式:
=IF(A2=A3,0,1)
0
将是“副本”的位置,1
将是保存的最后一行的位置。 -
在单元格D2中,把B2的值,并在D3中,把下面的公式:
=IF(A3=A2,D2&", "&B3,B3)
-
现在完成了,复制并粘贴D列中的值(复制整列,使用粘贴特殊并select“值”)。 删除filter,添加filter,但这次所有4列,并在列C中过滤
0
: -
删除这些行并清除filter。 最后,对列A进行sorting:
您现在可以删除列B和C.
如果您不介意VBA,则可以使用以下方法:
Sub ConcatRows() Dim arr As Variant Dim i As Long Dim d As Dictionary 'Create a dictionary to hold all Name and Skill Values Set d = CreateObject("Scripting.Dictionary") 'Fill an array with all Values arr = Range("A2", Cells(Rows.Count, 2).End(xlUp)) 'Loop the Values and and them into a dictionary For i = LBound(arr) To UBound(arr) 'If Name already in list then Add Skill to Item value of Name Key If d.Exists(arr(i, 1)) Then d(arr(i, 1)) = d(arr(i, 1)) & ", " & arr(i, 2) 'If Name isn't already in list then add name with its first Skill Else d.Add arr(i, 1), arr(i, 2) End If Next i 'Write all Name back to Worksheet Range("A2").Resize(d.Count) = Application.Transpose(d.Keys) 'Write all Skills Back to worksheet Range("B2").Resize(d.Count) = Application.Transpose(d.Items) End Sub