我怎样才能连接行的文本与逗号在Excel中?

我有一个excel数据如下,我想连接按逗号分隔的技能按照这样的人名;

Irakli Beridze | C#, Python, Java Parpali Zurashvili | C++, C 

我可以根据以下的情况来实现,但是我有n个数据行。

在这里输入图像说明

你可以使用像这样的帮助列来实现:

  1. 插入filter并按名称sorting:

    在这里输入图像说明

  2. 在C2单元格中,input公式:

     =IF(A2=A3,0,1) 

    在这里输入图像说明

    0将是“副本”的位置, 1将是保存的最后一行的位置。

  3. 在单元格D2中,把B2的值,并在D3中,把下面的公式:

     =IF(A3=A2,D2&", "&B3,B3) 

    在这里输入图像说明

  4. 现在完成了,复制并粘贴D列中的值(复制整列,使用粘贴特殊并select“值”)。 删除filter,添加filter,但这次所有4列,并在列C中过滤0

    在这里输入图像说明

  5. 删除这些行并清除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