在利用EXCEL时,有时从外部导入的数据,或者输入时不规范,将数字与文本夹杂输入在一个单位格中,给后续的统计运算带来未便,为此需要将文字与数字分隔,本篇介绍几种将数字提掏出来的方式。
起首要阐发数据内容,按照分歧的类型,利用分歧的方式。
阐发这个表格,可以发现,除了数字外,就是汉字,在双字节字符中,每个汉字算两个字节,操纵此特点,可以算出有几多个汉字、几多个数字,单字节字符数用LEN函数:=LEN(A2)。
双字节字节数用LENB函数,注重下两者的区分,单字节指字符个数,双字节指字节个数:=LENB(A2)。
二者相减,即可获得文字的个数:=LENB(A2)-LEN(A2)。
再用总字符数减去文字个数,即获得要提掏出来的数字个数:=LEN(A2)-(LENB(A2)-LEN(A2)),去失落括号,归并起来,公式为:=LEN(A2)*2-LENB(A2)。
知道了数字个数,再知道数字起头的位置,就可以用MID函数将数字提掏出来了,可是此刻不知道数字是从什么位置起头的,可以利用SEARCHB双字节查找函数+通配符"?"来查询单字节呈现的位置:=SEARCHB("?",A2)。
如许提取公式就有了,提取函数也要用双字节函数:=MIDB(A2,SEARCHB("?",A2),LEN(A2)*2-LENB(A2)),若是用单字节函数也可以,但公式稍长些:=MID(A2,INT(SEARCHB("?",A2)/2)+1,LEN(A2)*2-LENB(A2))。
提取成果是文本格局,若是要转为常规的数字格局,可以在公式前加上--,或者*1,来转换:=--MIDB(A2,SEARCHB("?",A2),LEN(A2)*2-LENB(A2)),转换格局后,可以进行下一步的统计运算。
若是文字中有空格,直接提取就会出去,需要对本来的内容进行去空格替代后,再提取:=--MIDB(SUBSTITUTE(A2," ",""),SEARCHB("?",SUBSTITUTE(A2," ","")),LEN(SUBSTITUTE(A2," ",""))*2-LENB(SUBSTITUTE(A2," ","")))。
可是上面的方式,只能用于除了数字就是文字的内容提取,若是除此之外,还有其它的字母、符号等单字节字符,就会犯错。
对于这种不心猿意马型的,可以用数组公式进行提取,从每个字符起头,掏出1~若干个字符(好比10个),再加上运算符号进行判定,掏出的是不是数值,再用MAX函数从中掏出是数值的最大都字:=MAX(IFERROR(--MID(A2,ROW($1:$30),COLUMN($A:$J)),)),在输入数组公式时,需要同时按住Ctrl+Shift+Enter竣事公式编纂,公式会主动生当作一对“{}”。
当然,也可以不消上面的数组公式,操纵LOOKUP函数的标的目的后兼容性,来提掏出数字:=-LOOKUP(1,-MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")),ROW($1:$10))),此公式先判定数字呈现的最小位置,再从此位置起头依次掏出若干个字符,最后用LOOKUP函数掏出最长数字串的阿谁数字,即达目标,关于此函数的用法,可以参看“EXCEL中LOOKUP函数的高级应用”。
4中函数的高级应用
固然操纵公式,可以从各类分歧的夹杂文本中找出纪律提掏出数字,可是仍是应该养当作杰出的习惯,在建造表格时,就将其分在分歧的列中,有助于后续统计。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!