在Excel表格处理过程中,经常会碰到需要从字符串中提取数字的情况。那么,平时大家都用哪些方法来解决这个问题呢?今天就给大家分享三种实用的方法,学会这三招,提取字符串中的数字就不用愁啦。
方法一、使用Ctrl+E快速智能填充快捷键
说明:
此方法要求Excel为07以上版本,它利用了Excel的快速智能填充功能来实现数字提取。
操作步骤:
首先,在目标单元格中手动提取出一个数字示例。例如,如果字符串是“abc123def”,就在目标单元格中输入“123”。然后,将鼠标定位在目标单元格下方的单元格,按下Ctrl+E快捷键,这样就能快速完成对同一列其他单元格中字符串数字的提取,操作十分便捷。
方法二、使用Word强大通配符功能
说明:
在Word中,通配符有着强大的功能。其中,[0 - 9]可表示所有数字,而在括号内加上“!”则表示所有非括号内的内容,比如[!0 - 9]就代表所有非数字。
操作步骤:
第一步,在Excel表格中选中要提取数字的字符串所在单元格区域,然后复制这些信息。第二步,打开Word软件,将复制的内容粘贴进去。第三步,在Word中打开查找替换窗口,在查找框中输入[!0 - 9],替换框中留空,并且要勾选“使用通配符”选项,最后点击“全部替换”按钮,这样就可以快速将字符串中的非数字字符去除,从而提取出数字,完成后再将提取出的数字复制回Excel表格相应位置即可。
方法三、使用LOOKUP函数
说明:
以下五条关于LOOKUP函数的说明非常重要:
- ROW(1:100)的功能是构造了一个由数字1、2、3、4……100构成的数组。
- 注意用LEFT、RIGHT、MID等函数截取字符串中的数字时,得到的往往是文本型数字,而双负号“--”的功能是将文本型数字转化成数值型数字,此外双负号还可以将非数值的内容转化为错误值。
- LOOKUP函数在查询时会自动忽略查询区域的错误值。
- LOOKUP函数在查询时如果查找不到查找值,则返回查找区域中小于查找值的最大值。
- 9E + 307是Excel表格中最大的数值。
操作方法及解析:
1. 数字在开头
- 操作方法:当数字在字符串开头时,在目标单元格中输入公式“=LOOKUP(9E + 307,--RIGHT(字符串所在单元格,ROW(1:100)))”,然后回车确定即可。
- 解析:首先,用LEFT函数分别提取字符串最左面的1、2、3、4……个字符,比如在本实例中会提取出“2”、“20”、“202”、“2020”、“2020年”……等等。然后依据上述五条关于LOOKUP函数的说明,就能实现从数字在开头的字符串中提取数字。
2. 数字在结尾
- 操作方法:当数字在字符串结尾时,在目标单元格中输入公式“=LOOKUP(9E + 307,--MID(字符串所在单元格,MATCH(1,MID(字符串所在单元格,ROW(1:100),1)^0,0),ROW(1:100)))”,然后回车确定即可。
- 解析:Right函数是用于提取字符串中右侧字符的函数,其他解析可参考提取数字在开头的字符串中的数字的解析内容。
3. 数字在中间
- 操作方法:当数字在字符串中间时,在目标单元格中输入公式“=LOOKUP(9E + 307,--MID(字符串所在单元格,MATCH(1,MID(字符串所在单元格,ROW(1:100),1)^0,0),ROW(1:100)))”,然后按下Ctrl + Shift + Enter三键确定即可。
- 解析:
- MID函数的功能是分别从第1位、第2位、第3位……提取字符串中的一个字符。例如在本实例中,会提取出“今”、“年”、“是”……等等,最终构成一个只包含一个字符的数组。
- 将上述所得到的只包含一个字符的数组元素进行0次方处理(即数字^0),如果截取的是数字的元素是文本型数字则返回数字1,否则返回错误值,最终构成一个只包含数字1和错误值的数组。
- 使用MATCH函数返回上述数组中第一个数字1出现的位置。在本实例中返回的位置是4,也就是数字2出现的位置。
- 使用MID函数和ROW函数分别在第一个数字出现的位置开始截取字符串的1、2、3……个字符。在本实例中返回的是2、20、202、2020……。
- 其他解析参考提取数字在开头的字符串中的数字的解析内容。
总结
通过学习这三种方法,无论是需要批量提取字符串中的数字,还是针对数字在不同位置(开头、结尾、中间)的字符串进行数字提取,相信大家都能够轻松搞定啦,这无疑会大大提高在Excel表格处理数据时的效率和准确性。
评论 (0)