提取字符串中的数字

本次的练习是:单元格中的数据包含文本和数字(如图1),如何使用公式提取出该单元格中的数字?

图1

先不看答案,自已动手试一试。


公式思路

先找到字符串文本中第1个数字出现的位置,然后取出从该位置起的全部数据。

公式

数组公式如下:

=1*MID(A1,MATCH(FALSE,ISERROR(1*MID(A1,ROW(1:10),1)),0),255)

公式解析

首先,公式:

MID(A1,ROW(1:10),1)

将单元格A1中的数据转换成一个数组:{“E”;”x”;”c”;”e”;”l”;”2”;”0”;”1”;”7”;””}。

我们假设单元格A1中的数据长度不会超过10个。

然后,将数组乘以1,即公式:

1*MID(A1,ROW(1:10),1)

得到数组{#VALUE!; #VALUE!; #VALUE!; #VALUE!; #VALUE!;2;0;1;7; #VALUE!}。

接下来,使用IFERROR函数,若数组中是错误值则转换成TRUE,否则为FALSE,即公式:

ISERROR(1*MID(A1,ROW(1:10),1))

得到数组{TRUE; TRUE; TRUE; TRUE; TRUE;FALSE; FALSE; FALSE; FALSE;TRUE}。

使用MATCH函数,查找数组中第一个FALSE出现的位置,即

MATCH(FALSE,ISERROR(1*MID(A1,ROW(1:10),1)),0)

得到值6,即字符串中的第6个字符开始出现数字。此时的公式为
=1*MID(“Excel2017”,6,256)

即从字符串“Excel2017”的第6位开始提取256个字符数据,从而取出字符“2017”,然后将其乘以1,转换成数字。

小结

  • 使用MID函数,可以实现数据分离。

  • 数字与文本相乘将产生错误值。

  • MATCH函数精确查找指定值第1次出现的位置。

  • 数字与数字形式的文本相乘,将其转换为数字。

(0)

相关推荐

  • 新增函数concat和老函数concatenate的用法

    很多时候我们都会用文本连接符&进行连接运算,今天就说2个关于文本连接的函数,一个是concatenate,一个是concat.虽然它们写法上有点相似,但是差别还是挺大的.concatenate ...

  • 从字符串中提取多个数字

    大家好,我经常看到有些同学会问一些从字符串中提取多个数字的问题,可能是ta数据录入不规范的原因,也可能是从系统导出的数据.不管什么原因,我认为这个问题也挺常见的,所以就学习和研究了好几天,今天就来和大 ...

  • 如何用公式提取字符串中的数字?!经典公式,收藏备用

    如何用公式提取字符串中的数字?!经典公式,收藏备用

  • 用基础技巧提取字符串中的数字

    用基础技巧提取字符串中的数字 今天咱们来说说从字符串中提取数字的技巧. 一说提取数字,大家可能最先想到的是用函数提取,对吧?嘿嘿,今天咱们不用函数. 其次你想到的是要用到vba提取,对吧?哈哈,咱也不 ...

  • 在Excel中提取单元格混合字符串中的数字与英文的函数介绍

    如何将某个单元格中的由英文与数字混合组成的字符串中的英文与中文分别提取到其它单元格? 首先说明,在Excel中没有满足这种功能的现成的函数,要想使用这种函数,就必须使用自定义的函数. 下面我们先看效果 ...

  • 63个函数公式、提取字符串中任意位置的数值

    63个函数公式、提取字符串中任意位置的数值

  • 从含有数字的文本字符串中提取出数字

    我的工作表中有许多含有数字的单元格,我想将数字单独提取出来.如下图1所示,将列A的单元格中的数字提取出来放置在列B中,应该如何编写公式呢? 图1 可以使用数组公式: =1*MID(A1,MATCH(T ...

  • Excel字符串中提取数字,不需要大神级公式

    小勤:大海,救命!有个二货给的表里面有一列中英文.数字.标点符号全混在一起的,我要把数字提出来! 大海:呵呵.网上不是有很多大神写过很牛B的公式吗? 小勤:我找过了,找到一个,完全看不懂!而且试了一下 ...

  • Python|字符串中第二大的数字

    问题描述给你一个混合字符串s,请你返回s中第二大的数字,如果不存在第二大的数字,请你返回-1.混合字符串由小写英文字母和数字组成.示例:输入:s = 'dfa12321afd'输出:2解决方案这是一道 ...

  • 从分隔符连接的字符串中提取子字符串

    有时候,在工作表单元格中有一些以某分隔符连接的字符串,如图1中的单元格A1,其内容是以逗号连接城市名. 图1 如果我们想要提取其中的某个城市,例如第8个子字符串表示的城市名,则可以使用下面的公式: = ...