excel 如何将单元格中的数字和文字分离,各成一列?

如一列下各单元格是这样的:
A1:张三4567
A2:234569王小明

如何把它变成:
A1:张三 B1:4567
A2:王小明 B2:234569
分别在哪行的顺序都不变(数据有N行)
可以的话尽量详细一些哦.万分感激!!!
回答第一位大哥,我有N行啊.

呵呵,这个问题好像刚刚有人问过了,不知是不是同一个人,不管了,挣分了,合适的话我们以后经常相互学习。
我水平比较低,只知道一个比较麻烦点的办法:
首先,在A列的数字和文本之间都加上一个空格,
变成A1:张三 4567 A2:234569 王小明

然后在B1中输入公式:=LEFT(A1,FIND(" ",A1)-1)
在C1中输入公式:=RIGHT(A1,LEN(A1)-FIND(" ",A1))
并将上述公式分别下拉复制到B列、C列的其他单元格中,这时你会发现数字和汉字已经分成了两列,只是每列都是数字和汉字的混合而已

最后,在D1中输入公式:=IF(TYPE(VALUE(B1))=16,B1,C1)
在E1中输入公式:=IF(TYPE(VALUE(B1))=1,B1,C1)
并将上述公式下拉复制到D列、E列的其他单元格中
则D、E两列就是你要的结果

这样操作起来在第一步加空格的时候是有点麻烦,但比你一个一个的复制粘贴还是要省事许多,不知道能不能帮到你。

补充:呵呵,刚刚跟别人学了个比较简单的方法,告诉你吧
在B1中输入公式:
=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
C1中输入公式:=SEARCH(B1,A1)
D1中输入公式:=REPLACE(A1,C1,LEN(B1),"")
并将上述公式下拉复制到B、C、D列的其他单元格中
则B列和D列就是你要的数据
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-07

假设您的原始数据是以字符开始,后面接数字。那么关键是要找到第一个数字的位置,然后用left和right结合len函数就可以实现了。

关于找第一个数字的位置,网上有用数组公式来做,我觉得很难理解。简单点还是做一个自定义函数。自定义函数的代码如下:

Function mYf(A As String) As Integer

Dim I, J As Integer

Dim mYs As String

I = Len(A)

For J = 1 To I

mYs = Mid(A, J, 1)

If Asc(mYs) >= Asc(0) And Asc(mYs) <= Asc(9) Then

   mYf = J

   Exit Function

End If

Next J

mYf = J + 1  '如果找不到数字,就等于字符长度+1

End Function

实现的公式如图所示:

结果如图所示:

第2个回答  2008-08-23
做好了,说明很麻烦的,直接给你发邮件,告诉我你的信箱
第3个回答  2008-08-23
谢谢第一位大哥的回答,我有N行啊.
相似回答