我有一个具有以下值的单元格:
5661:GRE:08:NAME
我想找一个excel公式,可以帮助我从这个示例中推断出以下值到单独的列/单元格中:5661 GRE 08 NAME
我过去曾使用LEN
,MID
,FIND
,但这只是为了找到一个"分隔符"与上例中的:
类似。当分隔符在单元格中重复多次时,不确定如何解决此问题以查找值。宁愿尝试在公式中解决这个问题而不是使用VBA。
答案 0 :(得分:5)
将文本用于“数据”选项卡中的列:
第一步:选择分隔命中下一步
第二步:点击其他并将:
放入框中。
从这里你可以继续第三步,但它是可选的。第三步允许用户指定限制格式类型。
如果您不关心列保持为General,则单击Finish。
如果你想要一个公式,那么:
=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),999*(COLUMN(A:A)-1)+1,999))
当您向右/向右拖动时,它将获得下一个单词。
答案 1 :(得分:1)
假设您的数据位于单元格A1中, 运行第二个宏
子文本() 调用Extract_Any_Think(Range(“ a1”),“ \ w +”) 结束
Option Explicit
Sub Extract_Any_Think(st As Range, Patt$)
Dim Obj As Object, i%
Set Obj = CreateObject("Vbscript.RegExp")
With Obj
.Pattern = Patt
.Global = True
End With
If Obj.test(st) Then
For i = 0 To Obj.Execute(st).Count - 1
st.Offset(, i + 2) = Obj.Execute(st)(i).Value
Next
End If
End Sub
'+++++++++++++++++++++++++++++++++
Sub text()
Call Extract_Any_Think(Range("a1"), "\w+")
End Sub