excel混合文本提取数字

1、首先要分析数据内容 , 根据不同的类型 , 使用不同的方法 。
2、分析这个表格 , 可以发现 , 除了数字外 , 就是汉字 , 在双字节字符中 , 每个汉字算两个字节 , 利用此特点 , 可以算出有多少个汉字、多少个数字 , 单字节字符数用LEN函数:=LEN(A2) 。
3、双字节字节数用LENB函数 , 注意下两者的区分 , 单字节指字符个数 , 双字节指字节个数:=LENB(A2) 。
4、二者相减 , 即可得到文字的个数:=LENB(A2)-LEN(A2) 。
5、再用总字符数减去文字个数 , 即得到要提取出来的数字个数:=LEN(A2)-(LENB(A2)-LEN(A2)) , 去掉括号 , 合并起来 , 公式为:=LEN(A2)*2-LENB(A2) 。
6、知道了数字个数 , 再知道数字开始的位置 , 就可以用MID函数将数字提取出来了 , 但是现在不知道数字是从什么位置开始的 , 可以使用SEARCHB双字节查找函数+通配符?来查询单字节出现的位置:=SEARCHB(?,A2) 。
7、这样提取公式就有了 , 提取函数也要用双字节函数:=MIDB(A2,SEARCHB(?,A2),LEN(A2)*2-LENB(A2)) , 如果用单字节函数也可以 , 但公式稍长些:=MID(A2,INT(SEARCHB(?,A2)/2)+1,LEN(A2)*2-LENB(A2)) 。
8、提取结果是文本格式 , 如果要转为常规的数字格式 , 可以在公式前加上-- , 或者*1 , 来转换:=--MIDB(A2,SEARCHB(?,A2),LEN(A2)*2-LENB(A2)) , 转换格式后 , 可以进行下一步的统计运算 。
【excel混合文本提取数字】9、如果文字中有空格 , 直接提取就会出去 , 需要对原来的内容进行去空格替换后 , 再提取:=--MIDB(SUBSTITUTE(A2, ,),SEARCHB(?,SUBSTITUTE(A2, ,)),LEN(SUBSTITUTE(A2, ,))*2-LENB(SUBSTITUTE(A2, ,))) 。
10、但是上面的方法 , 只能用于除了数字就是文字的内容提取 , 如果除此之外 , 还有其它的字母、符号等单字节字符 , 就会出错 。
11、对于这种不定型的 , 可以用数组公式进行提取 , 从每个字符开始 , 取出1~若干个字符(比如10个) , 再加上运算符号进行判断 , 取出的是不是数值 , 再用MAX函数从中取出是数值的最多数字:=MAX(IFERROR(--MID(A2,ROW($1:$30),COLUMN($A:$J)),)) , 在输入数组公式时 , 需要同时按住Ctrl+Shift+Enter结束公式编辑 , 公式会自动生成一对“{}” 。
12、当然 , 也可以不用上面的数组公式 , 利用LOOKUP函数的向后兼容性 , 来提取出数字:=-LOOKUP(1,-MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&0123456789;)),ROW($1:$10))) , 此公式先判断数字出现的最小位置 , 再从此位置开始依次取出若干个字符 , 最后用LOOKUP函数取出最长数字串的那个数字 , 即达目的 。
13、虽然利用公式 , 可以从各种不同的混合文本中找出规律提取出数字 , 但是还是应该养成良好的习惯 , 在制作表格时 , 就将其分在不同的列中 , 有助于后续统计 。

    推荐阅读