首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用修改后的数据从列表转换为平面CSV

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

Stack Overflow用户
提问于 2014-12-30 17:41:43
回答 2查看 77关注 0票数 2

我有爱尔兰/苏格兰宗族名称的列表,我需要将其放入搜索模块使用的格式中。以下是问题所在:

代码语言:javascript
复制
O'Quinn     Antrim
Quillan     Antrim
Quin        Antrim
Quinn       Antrim
Alinden     Armagh
Baron       Armagh
Barron      Armagh
Branagan    Armagh
Calan       Armagh

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

代码语言:javascript
复制
Antrim:O'Quinn, Quillan, Quin, Quinn, 
Armagh:Alinden, Baron, Barron, Branagan, Calan

有人知道如何在不需要大量人工干预的情况下实现这一目标吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-30 18:29:31

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

“守则”之前:

代码语言:javascript
复制
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

“守则”之后:

票数 2
EN

Stack Overflow用户

发布于 2014-12-30 18:21:50

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

创建字符串

在C2中:

代码语言:javascript
复制
=IF(B1<>B2,B2&": "&A2,C1&", "&A2)  

识别那些相关的

在D2中:

代码语言:javascript
复制
=B2<>B3  

Tidy up

复制C2:D2向下适合。

选择工作表,复制,粘贴特殊值。

过滤ColumnD以选择FALSE并删除所有可见的和列D和A。

重复其他14个文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27710007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档