资源描述:
《excel中取出字符串中的数字.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、excel中取出字符串中的数字1.数据-"a12345y"如何自动撷取其中的数字2.数据-"12345"如何自动只撷取其中间三个的数位(即234)放於其它格上如果你的数据有固定的长度和格式,公式可以简单些,如,前后各有1位字母:A1="a12345y"B1=Mid(A1,2,5)如果前后字母个数不固定:B1=MID(A1,MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-M
2、ATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1)数组公式,按Ctrl+Shift+Enter三键结束。1、截取字符串中的一部分,用函数MID()。A1="a12345y"公式最外层是Mid()函数,该函数的格式是:Mid(文本,开始位置,长度)对应公式是:MID(A1,MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-M
3、ATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1)2、长度=末位置-首位置+1。其中MATCH()公式有不同的两个:文本A1中第1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)文本A1中最后1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))两个公式不同之处,在于最后一个逗号。公式什么意思先别管,你只要知道:长度=最后1个数字的位置-第
4、1个数字的位置+1本例中:6-2+1=5,数字长度为5。3、拆散字符串。下面公式取出字符串中的每一粒字符:MID(A1,1,1)="a"MID(A1,2,1)="1"……MID(A1,6,1)="5"MID(A1,7,1)="y"下面公式返回的是拆散后的一串字符(数组):MID(A1,{1;2;3;4;5;6;7},1)={"a";"1";"2";"3";"4";"5";"y"}其中{1;2;3;4;5;6;7}用ROW(INDIRECT("1:"&LEN(A1)))计算所得。这是数组公式中的一个基本技巧,如果还不懂,
5、请从固顶的帖子中找到并学习它。在编辑栏中,请用鼠标选取MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)然后按F9可以看到上面的结果。4、0乘以任何数都得0吗?你一定不会怀疑。还是在编辑栏,请继续用鼠标选择:0*{"a";"1";"2";"3";"4";"5";"y"},或者选择:0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),按F9,结果显示为:{#VALUE!;0;0;0;0;0;#VALUE!}。真的不是“都得0”。里面除了0,还有错误值。个数与原来数组元素
6、的个数相同。0乘以任何数还是得0。因为前后两个"a"和"y",根本不是数,所以返回#VALUE!。0*{"a";"1";"2";"3";"4";"5";"y"}的目的使结果简单化,数字变0,字符变#VALUE!。为什么这样做?请听下回分解。5、Match()会告诉你,第1个0和最后一个0的位置。第1个0的位置:Match(0,{#VALUE!;0;0;0;0;0;#VALUE!},0)最后1个0的位置:Match(0,{#VALUE!;0;0;0;0;0;#VALUE!})如果不明白,请花点时间看一下关于MATCH()
7、的帮助。这个位置,其实也就是{"a";"1";"2";"3";"4";"5";"y"}中"1"和"5"的位置,也就是"a12345y"中1和5的位置。现在再返回开头看公式:Mid(文本,开始位置,长度)明白了吗?对公式的一点补充:数字、字母混合组合的情况,本公式不适用,如:从"a123b45y"中提取123或45。