如何隐藏信息文字(隐藏在一段文字中的数值)
如何隐藏信息文字(隐藏在一段文字中的数值)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.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、 处理在文字后面的数值(示例是正数)。
公式解析:其他意义和上面一样,只是将LEFT换成了RIGHT,这个是右截取函数。
3、 处理在文字中间的数字(以正数为例)
当然,以上这个公式,也同样适用于前两种情况(即左边有数值或者右边有数值)。
公式解析:
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的编器,并右键新增加模块,同时录入以下代码:
为了方便大家复制,我重新复制一下完整的代码如下:
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
返回到工作表中,我们输入如下公式:
今天说的这些,您学会了么。不会的,欢迎在下方留言!!