提取数字的函数公式(提取数字和单位的函数)

  1、数字在前面的数字与汉字的分离:

   B2输入公式:=-LOOKUP(9E+307,-LEFT(A2,ROW($1:$10)))

   C2输入公式:=RIGHT(A2,LEN(A2)-LEN(B2))

提取数字的函数公式(提取数字和单位的函数)

其中:Lookup的作用是查找小于或者等于他第一参数的数值;

      9E+307是传说中Excel能支持的最大的数值,可以直接输入9e307会自动转换;

row($1:$10)的作用就是生成序列1-10;

left分别提取1-10个数字,然后用减号强制转换成了数值;

     最后用Len来判断字符串长度,达到分离出汉字的目的;

 因为在取数字的时候,用了负号进行强制转换数字,所以在结果再加一个负号,将提取到的数值转换一下正负;这样做的目的就是能同时提取正负数。

2、数字在后面的数字与汉字分离,其实原理是一样的,看下面的案例:

   B2输入公式:=-LOOKUP(9E+307,-RIGHT(A2,ROW($1:$10)))

   C2输入公式:=LEFT(A2,LEN(A2)-LEN(B2))

提取数字的函数公式(提取数字和单位的函数)

所有的意义其实都差不多,只是将LEFT换成了Right而已。

   3、数字在字符串的中间,怎样提取数值(这种方式,一般只针对提取正数): 

提取数字的函数公式(提取数字和单位的函数)

公式为:=-LOOKUP(0,-MID(A1,MIN(FIND(ROW($1:$10)-1,A1&1/17)),ROW($1:$10)))

这是一个数组公式,需要按CTRL + SHIFT+ENTER结束公式的录入。

  其中:LOOKUP的作用如上面的一样;

     ROW($1:$10)-1的目的就是生成0-9这十个数字;

Find的作用就是分别找0-9这十个数字,在此字符串出现的位置;

Min的作用就是将FIND找到的十个位置,取最小值,也就是第一次出现的地方;

因为FIND函数查找不到的时候,会显示错误值,而我们也没有办法保证0-9这10个数字全部在字符串中出现,所以在查找位置会&1/17这么一个奇怪的表达式,是因为1/17会产生一个无限不循环小数,这个小数里面会包含0-9这10个数字(另外1/19也会达到同样的效果,不要问我为什么会知道,这完全是试出来的)。我们看看:

提取数字的函数公式(提取数字和单位的函数)

  当然,想任意提取各种数字、文字、字母的组合,只要有规则的话,都是能做到的,最好的办法就是通过VBA调用正则表达式来实现。对于一般的用户而言,上面三种办法已经完全能达到我们想要的了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2022年9月2日 14:10
下一篇 2022年9月2日 14:13

相关推荐

发表回复

登录后才能评论