在同一个excel列中分隔数据

时间:2016-06-07 23:19:35

标签: excel csv excel-formula pivot-table

我有一列包含多种值类型的数据。我试图将每个值类型分离到一个单独的列中。下面是数据示例:

6 - Cutler, Jay (Ovr: 83)
22 - Forte, Matt (Ovr: 88)
86 - Miller, Zach (Ovr: 80)

我试图通过以下方式分离数据:a)转到数据并单击文本到列;但是,数据的“Ovr:80”部分并没有将“Ovr”与80分开。我还尝试了b)转换为.csv文件,但又无法将“Ovr”与“80”分开。是否有一个公式可以用来将这部分数据与其余部分分开?

我希望将数据分成不同的列,如下所示:

6 | Cutler, | Jay | Ovr | 83
22 | Forte | Matt | Ovr | 88
86 | Miller | Zach | Ovr | 80 

非常感谢任何见解!

3 个答案:

答案 0 :(得分:1)

选择您要处理的单元格并运行此宏以将结果放置在所选单元格右侧的单元格中:

Option Explicit

Sub dural()
    Dim r As Range, s As String, ary
    Dim i As Long, a
    For Each r In Selection
        s = r.Value
        If s <> "" Then
            s = Replace(Replace(s, "-", " "), ",", " ")
            s = Replace(Replace(s, "(", " "), ")", " ")
            s = Application.WorksheetFunction.Trim(Replace(s, ":", " "))
            ary = Split(s, " ")
            i = 1
            For Each a In ary
                r.Offset(0, i).Value = a
                i = i + 1
            Next a
        End If
    Next r
End Sub

enter image description here

答案 1 :(得分:0)

使用上面的方法你可以做这样的事情......

首先清理文本,使其更易于管理,使用此公式并在列中复制,您可以清理它,使其成为空格分隔集

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"- ",""),",",""),"(",""),")",""),":","")

从那里只需复制公式为您提供的值,然后使用'Text To Columns将其拆分为列。

答案 2 :(得分:0)

对于记录,如果您愿意将文本添加到列选项,我不建议使用此方法。

此解决方案使用的函数是:

第一列文字的

使用以下内容:

=left(A1,find(" ",A1))*1

这将取出第一个数字,假设您没有任何前导空格。 * 1从文本转换为数字。

为您上次的第二列使用以下内容:

=MID(A1,FIND("-",A1)+2,FIND(",",A1)-(FIND("-",A1)+2))

如果您的示例数据中显示了昏迷和破折号,则不会出现错误,并且应该在没有昏迷的情况下提取姓氏。

对于您的第三列名字,请遵循与姓氏相同的一般技巧,以及

=MID(A1,FIND(",",A1)+2,FIND("(",A1)-2-(FIND(",",A1)+2)+1)

按照类似的模式让你通过专栏

=MID(A1,FIND("(",A1)+1,FIND(":",A1)-1-(FIND("(",A1)+1)+1)

最后让你的年龄栏使用这个:

=MID(A1,FIND(":",A1)+2,FIND(")",A1)-1-(FIND(":",A1)+2)+1)

根据需要将上述公式复制下来。