excel提取数字的公式 提取数字的函数公式

Excel工作表可以理解为一个由行、列组成的二维数组 。Excel公式支持数组和数组公式 。数组可以是常量数组,也可以是单元格区域的引用 。使用数组和数组公式时,可以逐数组元素或逐单元格处理后返回结果 。
下面直接从一个实例入手,再去讨论相关知识点 。
1 实例(从文本里提取数字)相关数据及需要达到的效果:
序号记录金额1吃饭15元152朋友过生日送礼金300元3003买米95954火车票200块回家2005房租900元9006水费200块钱2007电费250元250关键是要获得第一个数字出现的位置 。
试着使用下面的公式
=FIND(1,B2,1)
【excel提取数字的公式 提取数字的函数公式】可以返回3,表示字符1在字符串“吃饭15元”中的位置 。
如果要查找0,1,2,3,4,5,6,7,8,9十个字符呢?这时,数组及数组公式就可以派上用场了 。使用数组{0,1,2,3,4,5,6,7,8,9}作为参数,可以逐步处理每一个数字在字符串中出现的位置,返回的也是一个数组(10个值) 。由此,我们选择一个有10个单元格的连续区域D2:M2,输入=FIND({0,1,2,3,4,5,6,7,8,9},B2,1),同时按下CTRL+SHIFT+ENTER,然后复制数组公式,得到如下效果:

excel提取数字的公式 提取数字的函数公式


错误值#VALUE!表示某数字在字符串中不存在,所以也就不能返回位置值 。
为了避免出现错误值,可以在字符串后串一个包含10个数字字符的数字字符串:
excel提取数字的公式 提取数字的函数公式


上表中每行最小的数字就是字符串中每一个数字出现的位置,为此我们可以使用MIN()函数 。=MIN(FIND({0,1,2,3,4,5,6,7,8,9},B2&”0123456789″,1))
excel提取数字的公式 提取数字的函数公式


下一步要获取数字长度 。
函数LEN()可以返回字符数,函数LENB()可以返回字符串的字节数,一个数字一个字节,一个汉字两个字节,组合使用可以获取数字的长度:=LEN(B2)-(LENB(B2)-LEN(B2))
excel提取数字的公式 提取数字的函数公式


使用mid函数即可以截取数字,在公式前使用两个负号,可将文本转换为数字:
=–MID(B2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},B2&”0123456789″,1)),LEN(B2)-(LENB(B2)-LEN(B2)))
excel提取数字的公式 提取数字的函数公式


以下公式可以做一个改良:
1 {0,1,2,3,4,5,6,7,8,9}可以用ROW($A$1:$A$10)-1代替;
2 “0123456789”可以用5/19代替 。
5/19 = 0.26315789474
得到的下面公式具有同样效果,更通用和简洁:
=–MID(B5,MIN(FIND(ROW($A$1:$A$10)-1,B5&5/19,1)),LEN(B5)-(LENB(B5)-LEN(B5)))
2 数组及数组公式相关知识2.1 数组公式
数组就是一组数据,数组公式可以进行多重运算(对每一个数组元素或区域的每一个单元格都应用操作),减少了多次写于单元格的过程,可以实现常用公式较烦锁的操作,一步到位 。
2.2 删除数组公式
当我们对一个区域应用数组公式时,如D2:D6,使用此区域,输入{=B2:B6*C2:C6},按CTRL+SHIFT+ENTER,会在D2:D6的每个单元格输入{=B2:B6*C2:C6},都是一样,此时数组公式是一个整体,不能更改数组的一部分,也就是不能单独删除其中的一个单元格的数组公式,我们要删除数组公式要全部选中,当我们有时修改一个单元格的数组公式,不能退出时,大家记得按ESC键 。
2.3 一个单元格显示数组的情况
由于一个单元格内只能储存一个数值,所以当结果是一组数据时,单元格只返回第一个值 。
2.4 数组分类
可分为横向数组、纵向数组、区域数组(多行多列),也可以按维来分,横向数组和纵向数组都属于一维数组,区域数组属于二维数,像这种{1,2,3,1}就是常量数组

推荐阅读