昨天我们讲了字符串中数字在前面或在后面时的提取办法,今天我们来看下若是数字在中间该怎么办?在解决问题之前我们先学习下会用到的另外两个函数,ISNUMBER,MATCH。

1、ISNUMBER

ISNUMBER(value),检测一个值是否为数字,是就返回TRUE,否则返回FALSE。

如下图:

如果是嵌套使用时检测一个数组区域中是否有数字,结果将以数组的形式输出被引用。

2、MATCH

MATCH(lookup_value, lookup_array, [match_type])

返回该项在此区域中的相对位置,匹配方式分为1,0,-1,分别对应下列情况:

1或者是省略,MATCH 查找小于或等于 lookup_value 的最大值;

0,MATCH 查找完全等于 lookup_value 的第一个值;

-1,MATCH 查找大于或等于 lookup_value 的最小值。lookup_array 参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ... 等等。

实例如下图:

3、数字提取

学习了上面的函数后,我们来解决下今天的问题。如下图,提取数字。

我们先以不含小数点的数字提取为例。

思路:从字符串中间开始提取字符用MID函数,所以我们只需确定从第几位开始提取,一共提取几位字符,只要确定了这两个参数,问题就迎刃而解了。

从第几位开始提取?昨天刚学习了lookup,他能找到字符串中最后一个数字出现的位置,所以在B1中输入:

=lookup(1,-mid(A1,ROW($1:$10),1),ROW($1:$10))

把A1中的字符串拆解成{"你";"好";"4";"5";"m";"g";"";"";"";""},由于拆解出来的数字被当作了文本,前面加个负号就变成了{"你";"好";-4;-5;"m";"g";"";"";"";""},然后用lookup以1为查找值就会查找到-5,返回对应的行号即4,意思是字符串中最后一个数字在第四位。

用count对字符串中的数字进行计数

=COUNT(-MID(A1,ROW($1:$10),1)),返回2,代表字符串中有两个数字。

最后用mid函数

=mid(A1,4-2+1,2)即可得到想要的结果,中间参数的意思是最后一个数字的位置减去数字位数,然后加1,即得到了开始提取的位数,比如A1中,最后一个数字在第四位,有两位数字,所以从4-2+1=3位开始提取。

公式整合到一起即:

=MID(A1,(LOOKUP(1,-MID(A1,ROW($1:$10),1),ROW($1:$10))-COUNT(-MID(A1,ROW($1:$10),1))+1),COUNT(-MID(A1,ROW($1:$10),1)))

三键结束。

那找出从第几位开始提取还有没有好的办法呢?

我们用今天学的函数来思考下,

用ISNUMBER来判断A1中是否有数字

=ISNUMBER(-MID(A1,ROW($1:$10),1))返回

{FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

用MATCH来找到第一个TRUE的位置,即找到了第一位数字的位置

=MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$10),1)),0)

用COUNT计算出数字位数。

整合在一起即:

=MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$10),1)),0),COUNT(1*MID(A1,ROW($1:$10),1)))

三键结束

这个公式比上面的公式精炼点吧,但是其实本质是一样,都是用MID函数实现提取。

那对于数字中有小数的该怎么提取呢?

这个就不多介绍了,只需要用IF 做个判断,用上面的方法就可以了。

当然如果你用的是16版的excel,那么只需要CTRL+E瞬间就可以实现了。

转自:米宏Office

python提取字符串中数字_EXCEL数字在字符串中间怎么提取?相关推荐

  1. python 正则之提取字符串中的汉字,数字,字母

    python 正则之提取字符串中的汉字,数字,字母 #\d 匹配一个数字字符.等价于 [0-9] #\D 匹配一个非数字字符.等价于 [^0-9]#过滤字符串中的英文与符号,保留汉字 import r ...

  2. python使用正则表达式抽取字符串中最大数值数字

    python使用正则表达式抽取字符串中最大数值数字 #python使用正则表达式抽取字符串中最大数值数字 # Function to extract maximum numeric value fro ...

  3. c语言十六进制字符串转整数,C语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...

    问题描述:提取字符串中的十六进制数字并转换为一个十进制整数输出 源代码: /*十六进制转换成十进制*/ #include int main(void) { int i,k; char hexad[80 ...

  4. java提取字符串中字母_java截取字符串中的字母数字

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class Cut { // 1. 正则表达式 // 利用 ...

  5. SQL Server 提取字符串中的纯数字

    一.如何提取字符串中的纯数字 SQL语句如下(示例): select a,substring(a,patindex('%[0-9]%', a), patindex('%[0-9][^0-9]%', a ...

  6. c语言滤去所有非数字字符,Python: 去掉字符串中的非数字(或非字母)字符

    >>> crazystring = 'dade142.;!0142f[.,]ad' 只保留数字 >>> filter(str.isdigit, crazystrin ...

  7. Python去除字符串中的非数字、非字母

    文章目录 问题描述 解决方案 只保留数字 只保留字母 保留数字和字母 带小数点 参考文献 问题描述 Python去除字符串中的非数字.非字母 解决方案 只保留数字 str.isdigit():如果字符 ...

  8. python正则判断纯数字_Python 正则表达式匹配数字及字符串中的纯数字,

    Python 正则表达式匹配数字及字符串中的纯数字, Python 正则表达式匹配数字 电话号码:\d{3}-\d{8}|\d{4}-\d{7} QQ号:[1-9][0-9]{4,} 中国邮政编码:[ ...

  9. 【python作业】编写一个函数,由实参传来一个字符串,统计此字符串中字母和数字的个数,在主函数中输入字符串并输出上述的结果。

    编写一个函数,由实参传来一个字符串,统计此字符串中字母和数字的个数,在主函数中输入字符串并输出上述的结果. def fun(s):count1 = 0count2 = 0for i in s:if i ...

最新文章

  1. mysql 插入加锁_MySQL 是怎么死锁的?
  2. Android Studio快捷键快速入门
  3. 在 SAP Gateway Demo System ES5 申请用户遇到问题该怎么处理
  4. linux 下的csp 模块,linux kernel 中MIGRATE_TYPES的理解
  5. ROG游戏手机5跑分曝光:全球首发18GB超大内存
  6. ajax获取信息发送短信,javascript ajax获取信息功能代码
  7. HttpClient的简单使用--HttpGET和HttpPost
  8. 移动硬盘拒绝访问怎么修复?
  9. Revo Uninstaller快捷键命令
  10. ffmpeg sdk 视频合成 音视频截取
  11. Android Wear与Apple Watch交互设计对比
  12. Python爬虫 --- Scrapy爬取IT桔子网
  13. HTML设计网页之网页头部
  14. 抖音招商团长怎么做?怎么入驻?
  15. 12.5 比较判别法极限形式
  16. 从零开始学Python爬虫系列:Matplotlib FuncAnimation这1个功能,加1个更新函数,画出最简单的动图,让你爬取的数据动起来。(附:图片上加弹幕功能)
  17. 有隔板高效过滤器和无隔板高效过滤器区别在哪里
  18. 农村出身的 90 后程序员,如何逆袭为中产阶级?| 程序员有话说
  19. Libp2p - IPFS 与 Polkadot :双剑合璧会有时
  20. 小孔成像实验探究的软件_转载:探究小孔成像实验

热门文章

  1. C++ opengl 线段的绘制
  2. Qt creator5.7 OpenCV249之图片腐化(含源码下载)
  3. C/C++ OpenCV均值滤波
  4. 苹果笔记本电脑亮度无法调节_苹果更新笔记本加量还降价,教育优惠全面开启!...
  5. oracle十进制函数语法,Oracle 十进制、二进制互相转换自定义函数
  6. java删除csv一行_如何删除两个CSV之间的不常见行?
  7. nodejs获得服务器响应,轻松创建nodejs服务器(6):作出响应
  8. (数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事务的基本概念和数据库恢复概述
  9. Linux系统编程16:进程控制之进程终止以及终止进程的三种情况
  10. Linux的system()和popen()差异