2014-01-23 157 views

回答

1

你应该试试这个,如果你不想使用VBA:

我assumming你的数据在A柱,所以下面公式应保持在C色谱柱, 拖动此公式直到你的数据是否有列A

=+SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW($1:$25),1))*ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10) 

THEN

请使用列B中的以下公式并将其拖至最后。

=LEFT(A1,SEARCH(C1,A1)-1) 

希望这有助于

附上截图,供大家参考。

enter image description here

一些警告:

1) - 在列中的输入字符串中的必须短于25个字符

2) - 必须有至多14个数字中输入字符串。 (任何后面的数字将显示为零)。

但是对于你问的问题应该工作得很好。

0

有很多的网站提供的例子..

咱们说u必须在头一列数据..

下面的工作拆分在C列在B列文字,数字

Sub Seperate() 
Dim r As Range, rC As Range 
Dim v As Variant 

Set r = Range("A2", Range("A2").End(xlDown)) 
With CreateObject("VBScript.RegExp") 
    .Pattern = "(\d+|\D+)" 
    .Global = True 
    For Each rC In r 
     v = Split(Mid(.Replace(rC.Value, "|$1"), 2), "|") 
     rC.Offset(, 1).Resize(, UBound(v) + 1).Value = v 
    Next rC 
End With 
End Sub 
0

复制并粘贴到Word作为未格式化的文本。使用通配符查找内容:([A-z])([0-9])并用全部替换替换为:\1 \2。将结果复制回Excel,并以空格作为分隔符将文本应用于列。

0

文本编辑器Vi或Vim可以完成这项工作。

1号线:age231

2号线:open432

3号线:bit042

在命令模式下的命令1,3s/\(\D\)\(\d\)/\1\t\2/g可以做你想做的。