原标题:《抽取数字的8种必要且高效的方法你认识几个
大家好,我是一个沉迷于学习VBA的小酷~
最近,我有一个小粉丝——葛源同学。
应葛源的要求,今天我给大家简单介绍一下——用函数从单元格中快速提取数字!
01.数字和汉字▋数字和汉字之间有分隔符。
amp分类的方法大家都很熟悉,这里就不赘述了~
这里我们也可以使用find函数来查找分隔符。
在单元格C2中输入如下公式,然后下拉并填充它。
=左—1)
小分析:用find函数找到分隔符的位置,然后用left函数从左边提取数字。
▋数字和汉字之间没有分隔符。
数字在汉字的左边。
如上,你也可以使用快捷键来排序。
我们还可以使用lenb+len函数获取位置信息,提取号码。
下图中,len函数以英文为一个字节,lenb函数以汉字为两个字节。
因此,我们在单元格F2中输入以下公式,并将其下拉以填充它:
=LEFT*2—LENB(E2))
小分析:
LEN *2—LENB是获取左数位的个数,用left函数截取左数位。
数字在汉字的右边。
当数字在汉字右侧时,我们可以使用函数len+lenb+mid。
输入公式如下:
=中长(H2)+1.99)
小分析:
LENB —LEN主要获取左边文本的编号,加1后就是第一个数字出现的位数。
从第一个位置截取到99位。
数字是汉字的一部分。
您需要使用带有数组公式的查找函数来完成此操作。
公式如下:
=—查找,行(:)))
小分析:
这里,SEARCHB函数的通配符搜索函数用于查找字符串中的数字。
因为公式是数组公式,所以需要根据执行数组运算。
02.数字中夹杂着字母和汉字。
当数字,字母和汉字混合在一起时,我们需要使用复杂的数组公式。
公式需要按住才能进行数组运算,公式的左右两边会出现花括号,
如果你是Office 365的最新预览版,按回车即可。
▋提取字符串左右两边的连续数字。
号码在最右边。
=—查找))
号码在最左边。
=—查找))
小分析:
首先使用right函数从右到左截取长度为1到15的子串,然后使用负运算将文本转换为错误值,将数值转换为负数。
然后用lookup函数得到数组的最后一个值,最后把负数变成正数。
从左侧抽取数字的原理和从右侧抽取数字的原理是一样的。
▋的号码随处可见。
借助查找功能。
=—LOOKUP—1,K2amp1/17)),行(:)))
小分析:
首先,使用ROW函数构造一个0—9的数值数组:
第1行
1/17等于0.0588235294117647,是包含从0到9的所有数字的值它连接在文本的末尾,以防止FIND函数返回错误值,因为在搜索数字时,文本缺少相应的数字
使用FIND函数查找文本中10个数字的位置,使用MIN函数返回数字在文本中出现的最小位置,即可以获得第一个数字的位置。
使用MID函数,从第一个数字位置开始,依次向右截取15个长度为1~15的子串,加上负号,将数字转换成负数,将文本转换成错误值。
最后用查找函数返回最大的数,然后用负号把负数转换成正数。
借助max函数。
公式如下:
=MAX),列($A:$D),0))
小分析:
首先,使用len函数确定字符串中最长的数字。
Row ——13这个数字可以大于字符串中最长的数字,目的是截取下一个子字符。
left—从第一个字符开始,依次从右边截取1~13个子字符串。
列——:D取决于字符串中的最大位数。
Right),column($ a:$ d)——从左到右截取1~13个子字符,然后在这个数组的基础上从右到左截取1~4个子字符此时是13*4的阵列
公式以—为前缀,以便将文本转换为错误值。
将错误值转换为0,并从数组中选择最大值以获得最大值。
还是讲了一会,我问远歌:
从细胞中提取数字一般是怎么做的。
。