EXCEL单元格中的唯一数字如何提取出来.doc

EXCEL单元格中的唯一数字如何提取出来.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EXCEL单元格中的唯一数字如何提取出来

单元格中的唯一数字如何提取出来? 一个数值和文字混排的单元格,如何计提数值参与计算? 发哥gvntw给出了一个巧妙的公式: =LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A11234567890)),ROW(INDIRECT(1:LEN(A1))))) 1、FIND()告诉我,0-9在文本中第一次出现的位置。 用Find()在指定的文本中查找0-9,会返回第一次出现的位置,如果没有会返回一个错误值,聪明的gvntw,在文本后面连接上1234567890,让Find()不再有借口返回错误值,请放心,它不会影响后面的结果。在编辑栏中,像下面一样,用鼠标将这一段文本抹黑,然后按F9。 =LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A11234567890)),ROW(INDIRECT(1:LEN(A1))))) 2、对着 Min(),王小丫说:恭喜你,答对了,第一个数字在第3位。 如果你还怀疑,可以这再次抹黑,并按F9。 =LOOKUP(9E+307,--MID(A1,MIN({7;8;5;12;13;3;4;16;17;18}),ROW(INDIRECT(1:LEN(A1))))) 3、神奇魔术师 Mid() ,一个文本变出许许多多。 让事实说话,继续抹抹黑,按F9。开始位置不变,长度依次增1,形成一个数组,数组的个数等于文本长度(Row()的结果)。后面的会出现相同的情况,没关系,还是不影响结果的。 =LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT(1:LEN(A1))))) 4、如果忽略了--,还是功亏一篑。 看看,它的结果会是什么呢? =LOOKUP(9E+307,--{5;56;562;562.;562.0;562.00;562.00元;562.00元;562.00元}) 5、Lookup() 总是那么沉着,他闭着眼睛说,我就要最后面那个数字。 =LOOKUP(9E+307,{5;56;562;562;562;562.00;#VALUE!;#VALUE!;#VALUE!}) 9E+307 是一个非常大的数,在任何时候都适用,如果你知道你的文本中最大数的范围,比如1000,文本中的数字不会超过1000的,那么,这个数字你用1000,也是行的,即: Lookup(1000,……) 9E+307是什么概念? 9E+307是科学记数,用普通记数法写是9后面有307个0, 9E+307就是9*10^307 在构思解题思路时,就有,把那串文本从第一个数字开始,依次取1位、2位、3位、4位……,总共有多长,最后就取多少位。 有一部分,它的结果不是数(使用--把非数值筛出来,其余变成错误值#value),取出的结果是数值的,一定有一个是最大的,它一定排列在最后面(多举些例子,看看是不是这样),我们要取的就是最后面那个数。 9E+307是一个很大的数,很接近Excel计算允许的最大值,它好记,可以应付几乎所有的情况,所以,约定俗成而用它。 帮助中说,Variant 类型的数据正数最大值是 1.797693134862315E308,可是1E+308就出错了,不知为什么。 这里插入一点excel工作表的计算限制: 数字精度 15 位 单元格中可键入的最大数值 9.99999999999999E307 最大正数 1.79769313486231E308 最小负数 2.2250738585072E-308 最小正数 2.229E-308 最大负数 -2.2250738585073E-308 所以,用9E+307不是规定,不是原则,是约定俗成的用法,你用我用大家用. Indirect在这里的用处 因为Len(A1)=9, 目的是要返回Row(1:9)或者Row(A1:A9),进而得到结果{1;2;3;4;5;6;7;8;9} 但ROW(A1:Alen(A1))不行,因为A1:Alen(A1)是一个文本,而Row()的参数必须是一个引用。 这文本和引用的关系很微妙,Row(1:9)中,1:9是引用,1:len(a1)=1:9是一个文本,要把文本转化为引用才能供Row()使用,Indirect()的作用就是把文本转为引用。

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档