在同一个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)
只要你需要去复制上面的公式。