使用修改后的数据从列表转换为平面CSV

我有爱尔兰/苏格兰氏族的名字,我需要把我的search模块使用的格式。 这是问题:

O'Quinn Antrim Quillan Antrim Quin Antrim Quinn Antrim Alinden Armagh Baron Armagh Barron Armagh Branagan Armagh Calan Armagh 

我有一个名字列表(15k的文件中有100k +,有2-10k行),我想转换成可行的样式。 我想看到他们是这样的:

 Antrim:O'Quinn, Quillan, Quin, Quinn, Armagh:Alinden, Baron, Barron, Branagan, Calan 

任何人有任何想法如何得到这个成就,而不需要大量的手动干预?

我在另一个答案中使用了这样的东西(编辑:修正了一些小错误和更新的语法)testing工作!

在代码之前:
在这里输入图像说明

 Sub RemoveDups() Dim CurRow As Long, LastRow As Long, LastCol As Long, DestLast As Long, DestRng As Range, ws As Worksheet Set ws = ActiveSheet LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row For CurRow = LastRow To 3 Step -1 Set DestRng = ws.Range("B1:B" & CurRow - 1).Find(ws.Range("B" & CurRow).Value, LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext) If DestRng Is Nothing Then 'Do Nothing Else DestLast = ws.Cells(DestRng.Row, Columns.Count).End(xlToLeft).Column + 1 ws.Cells(DestRng.Row, DestLast).Value = ws.Cells(CurRow, 1).Value ws.Cells(CurRow, 1).EntireRow.Delete xlShiftUp End If Next CurRow ws.Columns("B:B").Cut ws.Columns("A:A").Insert Shift:=xlToRight Application.CutCopyMode = False End Sub 

代码后:
在这里输入图像说明

分三部分,假设O'Quinn在A2:

创buildstring

在C2中:

 =IF(B1<>B2,B2&": "&A2,C1&", "&A2) 

确定相关的

在D2中:

 =B2<>B3 

整理

复制C2:D2以适应。
select图纸,复制,粘贴特殊值。
过滤ColumnDselectFALSE并删除所有可见和列D和A.
重复其他14个文件。