将非常长的字符串拆分为行和列

时间:2015-09-21 15:32:35

标签: string excel parsing data-cleaning

使用一个非常基本的SQL编辑器,我已经在Mac终端中提取了一个或多或少相当于300,000行的字符串。我想将这个非常长的字符串分成两个不同的行(每个条目有大约15个不同的元素,但现在都是用字符串粘合在一起)和列。

数据目前的格式如下,其中一些子字段只有一个字,而另一些字段则是冗长的文本块:

  

(你' A'你'你'你' dfhudhf isduh,fdiu fdjfoidjofiod'你' D'), (你' A' B'你'你' dfhudhf isduh,fdiu fdjfoidjofiod'你' D'),(你&# 39; A' B'你' u' dfhudhf isduh,fdiu fdjfoidjofiod' u' D')等等。

)' (作为不同行之间的分隔符,u'作为不同字段的分隔符!复制到Excel最终只是一个非常长的字符串,并没有真正听取文本到列命令。

我一直在尝试将其拆分为Excel,但我无法设法使其正常工作。如果有其他软件更好用,我也非常愿意尝试!

2 个答案:

答案 0 :(得分:0)

请尝试这个,让我知道它是如何做的。

这假设您的字符串位于活动工作表的单元格A1中。

这将处理字符串并输出从与源字符串相同的工作表的第3行开始的数据表。

将以下程序放在标准代码模块中:

Public Sub mouse()
    Dim i&, j&, s$, r, c, w
    s = Replace([a1], " ", "")
    r = Split(s, "),(")
    ReDim w(1 To UBound(r) + 1, 1 To 1000)
    For i = 0 To UBound(r)
        c = Split(r(i), "u'")
        For j = 1 To UBound(c)
            w(i + 1, j + 1) = Replace(Replace(c(j), "'", ""), ")", "")
        Next
    Next
    [a3].Resize(UBound(w, 1), UBound(w, 2)) = w
End Sub

切换回单元格A1中长字符串的工作表。

按Alt-F8打开宏对话框。

运行mouse

答案 1 :(得分:0)

如果将@Exel Hero(但保留空格)复制到Word中,将u'替换为^t,将), (替换为^p并将文本转换为表...(可能是默认设置)然后复制到Excel中。