在同一个excel列中分离数据

我有一个数据列中有多个值types。 我正试图分离出每个值types到一个单独的列。 下面是一个数据的例子:

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 

任何有识之士都非常感谢!

select您想要处理的单元格,然后运行该macros将结果放置在所选单元格右侧的单元格中:

 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 

在这里输入图像说明

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

首先清理文本,使其更易于pipe理,使用这个公式和复制在一个列中,你可以清理它,所以它成为一个空间分隔集

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

从那里只需将公式给你的值复制到一个新工作表中,然后使用“Text To Columns”将它拆分成列。

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

用于此解决scheme的function是:

  • 左function
  • FINDfunction
  • MIDfunction

为您的第一列文本使用以下内容:

 =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) 

只要你需要去复制上面的公式。