当前位置:蜗牛素材网>综合资讯>科技>正文

excel中字符提取数字 Excel字符串中提取数字5种方法够不够

人气:333 ℃/2024-03-19 19:30:34

其实我不太理解为什么会有那么多汉字和数字混合存在,而后又要想方设法把其中的数字提取出来。录入数据的时候不能分开吗?

当然,这个世界不能理解的事情太多了,毕竟个人是那么的渺小,见识是那么的浅薄。

无论如何,提取数字这个话题还是值得研究研究。


结构明确

这是最简单的情况,字符串中数字的位置和长度都固定且已知,用字符提取函数直接提取即可:

=RIGHT(B3,3)

提取最右边的3个字符。

=MID(B4,6,4)

提取第6个开始的连续4个字符。

=LEFT(B5,2)

提取最左边的2个字符。

结构明确,直接提取


固定位置不固定长度

提取数字无外乎解决两个核心问题:

位置,从哪里提取;

长度,提取几个字符。

固定位置的情况下,在左边用LEFT,在右边用RIGHT,在中间用MID

长度则需要设法计算,LEN和LENB是常用方法。

LEN:返回字符串长度,无论中英文还是数字,一个字符返回1;

例如公式“=LEN(你好888)“的结果是5。

LENB:返回字节数,1个汉字是2个字节,返回2;1个字母和数字是1个字节,返回1.

例如公式“=LENB(你好888)“的结果是7。

以上两个结果的差值,就是字符串中汉字的个数。

下图所示案例中,通过这样的差值计算就可以确定数字的长度:

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

LEN,LENB


位置长度都不固定

=MAX(IFERROR(--MID(B3,ROW($1:$99),COLUMN($A:$CU)),""))

MID将字符串拆分得到一个二维数组;

--MID的作用是将该数组中的所有数据转为数字,非数字部分将返回错误值;

IFERROR将错误值转为空值;

整个二维数组中只剩下纯数字和空值两种类型;

MAX求最大值即可。

MID提起

这个公式还有两个要点:

  • 仅针对含1个数字的字符串有效;
  • 按字符数最大99设计,如大于99,需修改ROW和COLUMN的参数。或用OFFSET LEN来确定字符长度:

=MAX(IFERROR(--MID(B3,ROW(OFFSET($A$1,,,LEN(B3))),COLUMN(OFFSET($A$1,,,,LEN(B3)))),""))


固定分隔符

数字的前后有固定分隔符的情况,在M365版本中用TEXTBEFORE,TEXTAFTER,TEXTSPLIT这三个函数可以轻松解决。

如下图所示案例,提取括号中的数字:

=TEXTBEFORE(TEXTAFTER(B3,"("),")")

按指定分隔符提取

其他版本中的思路是用FIND来确定分隔符的位置和长度,MID提取。

=MID(B3,FIND("(",B3) 1,SUM(FIND({"(",")"},B3)*{-1,1})-1)

FIND MID


多数字夹杂

=SUBSTITUTE(CONCAT(MIDB(B3,ROW($1:$99),1))," ","")

借助MIDB按字节拆分的特性,一个汉字将被拆分为两个空格;

拆分后用CONCAT重新组合的新字符串中,只有数字和空格两种类型;

SUBSTITUTE将其中的空格全部替换为空即可。

MIDB拆分提取

搜索更多有关“excel中字符提取数字 Excel字符串中提取数字5种方法够不够”的信息 [百度搜索] [SoGou搜索] [头条搜索] [360搜索]
本网站部分内容、图文来自于网络,如有侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2008-2024 蜗牛素材网 All Rights Reserved. 手机版