我在分隔一列中的数据时遇到了一些困难。我有很多行,但上传数据的人员将所有内容合并为一列。整个专栏有教育,年龄,男性,女性和血型。我想要把病人的属性,并把它们分成五列。有没有一种方法可以将数据移动到五列而不使用Excel中“数据”中的“文本到列”?
任何帮助,将不胜感激。
谢谢。
EducationAge MaleFemale Bloodtype
MiddleAlabama21 10 ABpos
WestGov22 01 Bneg
VirginaTech25 01 ABpos
我在分隔一列中的数据时遇到了一些困难。我有很多行,但上传数据的人员将所有内容合并为一列。整个专栏有教育,年龄,男性,女性和血型。我想要把病人的属性,并把它们分成五列。有没有一种方法可以将数据移动到五列而不使用Excel中“数据”中的“文本到列”?
任何帮助,将不胜感激。
谢谢。
EducationAge MaleFemale Bloodtype
MiddleAlabama21 10 ABpos
WestGov22 01 Bneg
VirginaTech25 01 ABpos
随着A1数据,在B1输入:
=LEFT(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999)),LEN(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999)))-2)
在C1输入:
=RIGHT(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999)),2)
在D1输入:
=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:B)*999-998,999))
和E1输入:
=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:C)*999-998,999))
这将工作,如果年龄是位数(大于9,小于100)
另请注意,我已将男性/女性字段作为单个字段留下了数字字段。
对于VBA,这是依赖于年龄始终是两位数。
Sub splitStr()
Dim rng As Range
Dim ws As Worksheet
Dim spltStr() As String
Set ws = Sheets("Sheet4")
With ws
For Each rng In .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
spltStr = split(Trim(rng))
rng.Offset(, 1) = Left(spltStr(0), Len(spltStr(0)) - 2)
rng.Offset(, 2) = --Right(spltStr(0), 2)
rng.Offset(, 3) = --Left(spltStr(1), 1)
rng.Offset(, 4) = --Right(spltStr(1), 1)
rng.Offset(, 5) = spltStr(2)
Next rng
End With
End Sub
这不会做头。那些是手工输入的。
**所有年龄大于9 ?? ** –
https://support.office.com/zh-cn/article/Split-text-among-columns-by-using-functions-c2930414-9678- 49d7-89bc-1bf66e219ea8正是你所需要的,你应该能够以编程方式使用搜索功能来查找和分割你的字符串空白 –
所有年龄段都在9以上 – Starbucks