excel中如何将同一单元格数字跟汉字分别放在两个单元格里?

2024-11-27 01:19:17
推荐回答(5个)
回答1:

从你的例子看,数字都在前面,汉字集中在后面,可以这样做:

C1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9","")

B1=SUBSTITUTE(A1,C1,"")

选定B1:C1

下拉

如图:


这个方法的原理是,在原字符串中把数字都替换成"",剩下的就是汉字字符串了。
假定原字符串中汉字都集中在一起,在原字符串中,把集中在一起汉字替换成"",剩下的就是数字字符串了。

用如下VBA程序,则即使数字与汉字混杂在一起都能分离开来。为了不把B列和C列的公式冲掉,我把运行结果放在D列和E列:

Sub 分离数字与汉字()

Dim rng As Range, a$, b$, i%

For Each rng In Intersect(UsedRange, Range("A:A"))

a$ = "'"

b$ = ""

For i% = 1 To Len(rng.Value)

If Mid(rng.Value, i%, 1) Like "[0-9]" Then

a$ = a$ & Mid(rng.Value, i%, 1)

End If

If Asc(Mid(rng.Value, i%, 1)) < 0 Then

b$ = b$ & Mid(rng.Value, i%, 1)

End If

Next i%

rng.Offset(, 3).Value = a$

rng.Offset(, 4).Value = b$

Next

End Sub

回答2:

一、数字在前汉字在后的内容结构

如  1234元   或   99999公斤 这样的数据写在A1单元格

在B1单元格写入公式

=LEFT(A1,2*LEN(A1)-LENB(A1))

 

在C1单元格写入公式

=RIGHT(A1,LENB(A1)-LEN(A1))

 

下拉填充公式就能得出如下图的效果

 

二、汉字在前数字在后的内容结构

如  文具个数1800   或  型号999888  这样的数据写在A1单元格

在B1单元格写入公式

=LEFT(A1,LENB(A1)-LEN(A1))

在C1单元格写入公式

=RIGHT(A1,2*LEN(A1)-LENB(A1))

 

下拉填充公式就能得出如下图的效果

 

 

三、以上公式都是利用数字是单字节,汉字是双字节的原理进行计算的,用了LENB计算单元格中共有多少个字节数,再用LEN来统计单元格中有多少个字符数,用两者的差值来提取字符个数的.

回答3:

1、如果数字位数都是6位,公式最简单=midb(a2,(column(a1)-1)*6+1,6) 右拉填充,再下拉填充
2、如果位数不定,楼上提供的各公式都可以。
3、不用公式,原数据不再保留,也可以用分列的方法。

回答4:

left 从A1里面左侧取 A1里面字符字节长度减去A1里面字符数的个数
right 从A1里面右侧取A1里面字符个数的 2倍减去A1里面字符字节数

回答5:

将公式修改如下:
=LEFT(A1,LEN(A1)*2-LENB(A1))
=RIGHT(A1,LENB(A1)-LEN(A1))