快捷搜索:  汽车  科技

如何隐藏信息文字(隐藏在一段文字中的数值)

如何隐藏信息文字(隐藏在一段文字中的数值)1.3 LEFT,是从左到右,配合ROW函数,分别提取1位,2位,…97位数出来; 1.2 ROW($1:$97),其实就是生成1,2,3….97这样的序号,表示一个数字有很多位数,真实情况97直接换成10或者20就足够了; 那我们用什么方式可以分别提取出来呢。 公式解析: 1.1 9E 307,这是一个很大的数值,传说中的,可以在Excel中处理的最大数值,即9*10^307,太太太太大了;

隐藏在一段文字中的数值,我让你无所遁形Excel7580

Excel我帮您

经常会在Q群或者维护公众号留言的时候,有人会问,怎么在一段文字中提取里面的数值,类似下面这样的。

如何隐藏信息文字(隐藏在一段文字中的数值)(1)

可以看到,数字存在一段文字中也分几种情况:在文字前、在文字中、在文字后,还有可能是负数。

那我们用什么方式可以分别提取出来呢。

1、 处理在文字前面的数字(示例是以正数为准,负数要换个方式)。

如何隐藏信息文字(隐藏在一段文字中的数值)(2)

公式解析:

1.1 9E 307,这是一个很大的数值,传说中的,可以在Excel中处理的最大数值,即9*10^307,太太太太大了;

1.2 ROW($1:$97),其实就是生成1,2,3….97这样的序号,表示一个数字有很多位数,真实情况97直接换成10或者20就足够了;

1.3 LEFT,是从左到右,配合ROW函数,分别提取1位,2位,…97位数出来;

1.4 --,强制转换符,将用LEFT提取出来的数值(有可能不是数值),因为是文本型,强制转换成数值型;

1.5 LOOKUP在这里的用法是进行模糊查询,依次查找1位数值,2位数值,直到不是数字为止;所以用了9E307这个最大的数来进行查询,查询最接近他的那个值。

2、 处理在文字后面的数值(示例是正数)。

如何隐藏信息文字(隐藏在一段文字中的数值)(3)

公式解析:其他意义和上面一样,只是将LEFT换成了RIGHT,这个是右截取函数。

3、 处理在文字中间的数字(以正数为例)

如何隐藏信息文字(隐藏在一段文字中的数值)(4)

当然,以上这个公式,也同样适用于前两种情况(即左边有数值或者右边有数值)。

公式解析:

3.1 MID是中截取函数,就是从哪个位置开始,截取多少位字符的意思;

3.2 FIND是查找函数,是在某字符串中查找某字符的开始位置;

3.3 ROW($1:$10)-1,是固定生成0-9这10个数字;

3.4 1/17,这个是一个无限小数,在这小数里面,一定会包含0-9这10个数字的,不要问为什么要这样写,这只是前人试验出来的,大家照着用就是了。 1/19好像也有这个功效;再将生成的数值和前面那段文件字连接到一起,这段文字中就确保了一定会有0-9这10个数字,为FIND查找提供了依据;

3.5 整个理解起来就是,先查找第一个数字出现的位置,再用MID进行依次截取,再用LOOKUP进行判断,哪个最大,就取哪个。

4、 提取数值的VBA方式

下面,我要放大招了,能同时提取在前、在后、在中和负数的方法了。。

在Excel界面中,按快捷键Alt F11,进入VBE的编器,并右键新增加模块,同时录入以下代码:

如何隐藏信息文字(隐藏在一段文字中的数值)(5)

为了方便大家复制,我重新复制一下完整的代码如下:

Public Function getNumber(rg As Range) As Double

Application.Volatile

With CreateObject("VBSCRIPT.REGEXP")

.Pattern = "\-*\d (\.\d )*"

.Global = True

If .test(rg.Value) Then

getNumber = .Execute(rg.Value)(0)

End If

End With

End Function

返回到工作表中,我们输入如下公式:

如何隐藏信息文字(隐藏在一段文字中的数值)(6)

今天说的这些,您学会了么。不会的,欢迎在下方留言!!

猜您喜欢: