用函数在Excel中从文本字符串提取数字.docVIP

用函数在Excel中从文本字符串提取数字.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用函数在Excel中从文本字符串提取数字Excel输入数据过程中,经常出现在单元格中输入这样的字符串:GH0012JI、ACVB908、华升12-58JK、五香12.56元、0001#、010258等。在进行数据处理时,又需要把其中的数字0012、908、12-58、12.56、0001提取出来。 如何通过使用Excel的工作表函数,提取出字符串中的数字? 一、问题分析 对于已经输入单元格中的字符串,每一个字符在字符串中都有自己固定的位置,这个固定位置都可以用序列数(1、2、3、……)来表示,用这些序列数可以构成一个可用的常数数组。 以字符串“五香12.56元”为例:序列数1、2、3、4、5、6、7、8分别对应着字符串“五香12.56元”中字符“五”、“香”、“1”、“2”、“.”、“5”、“6”、“元”。由序列数组成一个保存在内存中的新数组{1;2;3;4;5;6;7;8}(用列的形式保存),对应字符串中的字符构成的数组{“五”;“香”;“1”;“2”;“.”;“5”;“6”;“元”}。因此解决问题可以从数组着手思考。 二、思路框架 问题的关键是,如何用序列数重点描述出字符串中的数字部分的起始位置和终止位置,从而用MID函数从指定位置开始提取出指定个数的字符(数字)。 不难看出,两个保存在内存中的新数组: {“五”;“香”;“ 1”;“2”;“.”;“5”;“6”;“元”} {1;2;3;4;5;6;7;8} 数组具有相同大小的数据范围,而后一个数组中的每一个数值可以准确地描述出字符串中字符位置。 字符与序列数的对应关系如下表所示: 字符?????字符位置 五??——????1 香??——????2 1???——????3 2???——????4 .???——????5 5???——????6 6???—— ???7 元??——????8 所以解决问题的基本框架是: 用MID函数从字符串的第一个数字位置起提取到最后一个数字止的字符个数。即{=MID(字符串,第一个数字位置,最后一个字符位置-第一个字符位置+1}。其中“+1”是补上最后一个数字位置减去第一个数字位置而减少的一个数字位。 三、解决方案及步骤 假定字符串输入在A2单元格。 ⑴确定A2中字符串的长度。 即用LEN函数计算出A2中字符串中字符的个数,这个字符个数值就是字符串中最后一个字符在字符串中的位置:=LEN(A2)。 ⑵确认字符串中的每一个字符位置序列数组成的新数组。 用INDIRECT函数返回一个由文本字符串指定的引用: =INDIRECT(1:LEN($A2)) 用返回行数的函数ROW确定文本引用INDIRECT(1:LEN($A2))构成的新数组:{=ROW(INDIRECT(1:LEN($A2)))} ⑶用按指定位置开始返回指定个数字符的函数MID返回由新数组{=ROW(INDIRECT(1:LEN($A2)))}确定位置的每一个字符,并将文本转化成数值型数据: {=--MID($A2,ROW(INDIRECT(1:LEN($A2))),1)} 注意: 函数MID返回的字符是文本,将文本转化为数值型数据,可以用函数VALUE,也可以同等功能地用符号“- -”或“+0”或“-0”简化表达,这里用“- -”表示。 ⑷函数ISNUMBER判别MID函数提取出来的字符是不是数字,是数字返回TRUE,不是数字返回FALSE。 具体公式是: {=ISNUMBER(--MID($A2,ROW(INDIRECT(1:LEN($A2))),1))} ⑸逻辑函数IF根据用函数ISNUMBER检测MID函数提取出来的字符是否数值的真假,返回数字字符在字符串中的位置,如果不是数字则返回空白字符。 具体公式是: {=IF(ISNUMBER(--MID($A2,ROW(INDIRECT(1:LEN($A2))),1)),ROW(INDIRECT(1:LEN($A2))),)} ⑹用MIN函数返回数字位置数组成数组中的最小数。 具体公式是: {=MIN(IF(ISNUMBER(--MID($A2,ROW(INDIRECT(1:LEN($A2))),1)),ROW(INDIRECT(1:LEN($A2))),))} ⑺用MAX函数返回数字位置数组中的最大数。 具体公式是: {=MAX(IF(ISNUMBER(--MID($A2,ROW(INDIRECT(1:LEN($A2))),1)),ROW(INDIRECT(1:LEN($A2))),))} ⑻确认字符串中第一个数字的起始位置: {=MIN(IF(ISNUMBER(--MID($A2,ROW(INDIRECT(1:LEN($A2))),1)),ROW(INDIRECT(1:LEN($A2))),))} ⑼确认字符串中第一个数字与最后

文档评论(0)

qhhb493 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档