Excel一个单元格数字和汉字怎么拆分成两个?数字和汉字分开,求公式,最好是详细点的

如:554北极熊855 一个单元格, 变成两个单元格 北极熊 554 855. 我QQ274165969 教会追加50分

用VBA自定义函数吧,使用方便

按ALT+F11 打开代码窗口,
在左边的格(工程资源管理器)内,右键,
插入,模块,
将下面的代码复制到右边窗口内(模块1的代码窗口),
-----------
Public Function iFL(iRng As Range, iTp As Byte) As String
'将单元格值内的数字分离
'参数:-----
'iRng:为 单个单元格地址
'iTp:为 1 时,结果为非数字串;为 非1的数字 时,结果为数字串
Application.Volatile
If iRng.Cells.Count <> 1 Then iFL = "#非1单元格": Exit Function
If iTp <> 1 And iTp <> 2 Then iFL = "#非类型": Exit Function
Dim iVl As String: iVl = iRng.Value & ""
If Len(iVl) = 0 Then iFL = "": Exit Function
Dim iChr As String, iStr As String, iNum As String, i
For i = 1 To Len(iVl)
iChr = Mid(iVl, i, 1)
If IsNumeric(iChr) Then
iNum = iNum & iChr
iStr = iStr & " "
Else
iNum = iNum & " "
iStr = iStr & iChr
End If
Next
If iTp = 1 Then iStr = Trim(iStr) Else iStr = Trim(iNum)
i = InStr(1, iStr, " ")
Do While i <> 0
iStr = Replace(iStr, " ", " ")
i = InStr(1, iStr, " ")
Loop
iFL = iStr
End Function
----------------
然后关闭代码窗口,返回sheet表
现在就可以将这个ifl()函数当做普通函数使用了
这个函数有两个参数,第一个是源数据的地址(须为1个单元格),第二个是返回的内容类型(1为字符,2为数字)

例:
A1=dsads321321fdsfdsf5435fds

B1内输入公式:
=ifl(A1,1)
结果:
dsads fdsfdsf fds

C1内输入公式:
=ifl(A1,2)
结果
321321 5435
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-02
如果数据在A1单元格,就在B1格中用公式=IF(MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),1)="0","0"&LOOKUP(9E+307,--MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),ROW($1:$1024))),LOOKUP(9E+307,--MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),ROW($1:$1024))))
这可得到数字,即便数字前有0,也可得到完整的数字.
比如:"北极0123熊",通过公式将得到0123,而不是123
在B1格用公式=SUBSTITUTE(A1,B1,"")
可得到文字
第2个回答  2011-02-28
如果汉字的位数和数字的位数不一样,则很难办到,需要用VB编程
第3个回答  2011-02-28
如果都是汉字和数字的组合,且汉字连在一起,
提A1单元格里的汉字
B1公式
=MID(A1,MIN(IF(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),"",ROW(INDIRECT("1:"&LEN(A1))))),LENB(A1)-LEN(A1))
crtl+shift+enter结束公式
C1公式就简单了
=substitute(A1,B1," ")
第4个回答  2011-02-28
请问你的表格是否都是这种3个数字,3个汉字,3个数字的格式?
如果是的话可以按照这个公式:
数字部分=LEFT(C1,3)& RIGHT(C1,3),
汉字部分=LEFT(RIGHT(C1,6),3),
相似回答