我正在尝试从文本中提取数字。
如果我有12&6&2014
这样的条目,我该如何提取 12 (第一个&
之前的数字)和 2014 (在第二个&
之后发生的数字?
答案 0 :(得分:4)
获取第一个号码:
=LEFT(A1, FIND("&", A1)-1)
要获取第二个&
之后的最后一个数字:
=RIGHT(A1, 4)
否则,如果那不总是一年:
=MID(A1, FIND(CHAR(1), SUBSTITUTE(A1, "&", CHAR(1), 2))+1, LEN(A1))
答案 1 :(得分:0)
如果我理解的是正确的,那就是分开的字符和使用的数字有所不同,你可能会看到这样的事情:
Function CleanUp(Txt)
For x = 1 To 255
Select Case x
Case 45, 47, 65 To 90, 95, 97 To 122
Txt = WorksheetFunction.Substitute(Txt, Chr(x), "") <- "" can be replaced
End Select with "&" to do a
Next x MID() using & as
the delimiter
CleanUp = Txt
End Function
如果您可以使用VBA,这将使用空白替换您的字符,但您可以放入自己的字符,然后使用公式将其与特定分隔符分开。
原始代码可以在这里找到:
http://www.mrexcel.com/forum/excel-questions/380531-extract-only-numbers.html
答案 2 :(得分:0)
你可以遍历字符串中的每个字符并检查它是否是数字
Sub getNumberValues()
Dim s As String
Dim c As New Collection
Dim sNewString As String
s = "12&6&2014"
For v = 1 To Len(s)
If IsNumeric(Mid(s, v, 1)) Then
sNewString = sNewString & Mid(s, v, 1)
Else
c.Add sNewString
sNewString = ""
End If
Next v
'add the last entry
c.Add sNewString
sNewString = ""
For Each x In c
sNewString = sNewString & x & Chr(13)
Next
MsgBox sNewString
End Sub
答案 3 :(得分:0)
最简单的可能是以&
作为分隔符的文本到列,然后删除中间列。这会覆盖原始数据,因此副本可能是合适的。
另一个简单的方法是创建两个副本,一个查找内容:&*
和替换为:无,另一个查找内容:*&
和替换与:没有。
替代公式解决方案可能是:
=DAY(SUBSTITUTE($A1,"&","/"))
和
=YEAR(SUBSTITUTE($A1,"&","/"))