手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

EXCEL如何提取连续数字字符串的公式详解

时间:2024-10-14 11:17:46

1、方式1比较简单,用到了lookup、row、SEACHB以及MIDB函数。SEACHB函数是查找单字节(也就是字母或数字等)的第一次出现的的位置,以这个为准作为起始位置截取一定长度的字符串(MIDB),这是就用到ROW函数,在公式中ROW($1:$19)={1;2;3;4;5;6;7;8;……}即1-19个长短不一的长度,这三个公式组合如下:midb(被提取的字符串a2,seachb("?",a2),row($1:$19))例如字符串为:产品号1257型,那么midb(被提取的字符串a2,seachb("?",a2),row($1:$19))={1,12,125,1257,1257型}(函数的结果是一组数据集合)这个时候用到lookup函数,使用该函数的区域必须升序排列,lookup(0,-midb(被提取的字符串a2,seachb("?",a2),row($1:$19)))表示返回-midb结果在最接近0的值即-1257,最后整体公式在进行负数转换就负负得正了缺点就是数字前面不能是字母,不然seachb查找就第一单字节就是从字母开始,最后整个提取都没有数字了,就会返回错误;

EXCEL如何提取连续数字字符串的公式详解

2、方式2理解略微比较绕 ,用到了MID()、MATCH()、COUNT()、ISNUMBER()函数。主要是将字符串遍历找到第一数字出现的位置,然后根据row提取一定长度。1)将mid将字符串一字一字拆分 :mid(A2,row($1:$9),1)2)将拆分的字符串一字一字的判断是否为数值,是返回true,否返回false ISNUMBER(1*MID(a2,ROW($1:$9),1))用1*是表示将文字转为错误值#value3)查找出现第一个true的位置 MATCH(TRUE,ISNUMBER(1*MID(a2,ROW($1:$9),1)),0)4)判断拆分的一字一字集合里有几个是数值,到时截取这个长度 COUNT(1*MID(a2,ROW($1:$9),1))5)最终组成以下函数,因为函数里有用到集合,最终需要同时按ctrl+shift+enter退出函数以完成操作{=1*MID(a2,MATCH(TRUE,ISNUMBER(1*MID(a2,ROW($1:$9),1)),0),COUNT(1*MID(a2,ROW($1:$9),1)))}缺点就是被提取的字符串不能出现2出数字串.

EXCEL如何提取连续数字字符串的公式详解

3、方式3比较不好理解,用到了LOOKUP()、MID(拘七呷憎)、MIN()、FIND()、ROW()、INDIRECT()、LEN()等函数。但优点是被提起的字符串组成无要求1)先将字符串非蹿轨敞跟0-9的数字连接,这样使用find函数不会返回错误值FIND({0,1,2,3,4,5,6,7,8,9},C7&"0123456789")表示0-9在字符串分别处在什么位置2)查出现第一个数字的位置,使用min+find的函数,即不再1)返回的最小值就是第一个位置MIN(FIND({0,1,2,3,4,5,6,7,8,9},C7&"0123456789"))3)确定要截取的最大长度ROW(INDIRECT("1:"&LEN(C7)))用len()就是确定字符串有多长如果c7有6个字符的长度,那么ROW(INDIRECT("1:"&LEN(C7)))=row(inderect("1:6")={1;2;3;4;5;6}4)再用mid截取长度分别为{1;2;3;4;5;6}的字符串5)最后用lookup匹配字符串中的最大值=LOOKUP(9E+205,--MID($C7,MIN(FIND({0,1,2,3,4,5,6,7,8,9},C7&"0123456789")),ROW(INDIRECT("1:"&LEN(C7)))))其中,用到--这个双负号的用途:先用一个负号“-”将截取的字符串(为文本格式)转化为数字(,再将数字转化为正数。

EXCEL如何提取连续数字字符串的公式详解
© 手抄报圈