最近总是需要用EXCL提取数据,就顺便学习一下MID和MIDB这两个函数吧,这两个函数的作用都是从一个字符串中截取出指定数量的字符。
首先来看看这两个函数的三个参数
1、 TEXT,就是一个字符串(也可以指向某个单元格,即地址)。
2、 String text,指你需要截取的字符的位置(可以是一个数字,也可以是一串你需要从其他地方获取的数值的计算公式,或者指向其他单元格)
3、 Length num_chars,你需要截取的字符的长度,道理同上。
再来了解一下函数的基本用法:
- 一、MID函数
我们在单元格里输入下面,第一个参数随便写一下
=MID("你好111,欢迎",2,4)
结果是:好111
根据上面函数的意思,这个语句的意思就是从"你好111,欢迎"这个字符串里的第2个字符的位置,向后截取4个字符的一个字符串,是不是很好理解。
- 二、MIDB函数
这个函数和MID函数意思是一样的,但是,MIDB与MID有微小的区别,使用一下看一看。
同样的,我们在单元格里输入下面,整个语句同上。
=MIDB("你好111,欢迎",2,4)
结果是:好1
两个函数的结果不一样,我们来找一下原因,来看一下系统里对这两个函数的介绍:
MIDB里介绍说与双字节字符集一起使用字符串,那什么是双字节呢?查了一下,我们的中文其实都是双字节,就是一个字占两个字符。
那在第二个函数中的意思就是从"你"这个字符的一半开始截取,往后共四位,那显示出来的就只有3个字符。但"好"字又占了两个字符,所以结果就成了"好1"。
接下来可以多试几个字符串,看看这两个函数的对比。
根据上图的显示我们可以看到,最后输的标点符号如果是在中文状态下输的,那也是占两个字符的,但数字始终是只占一个字符的,在以后运用到实际中可以根据需要选择用哪一个函数。
上个实例吧:如图我们知道一个人的身份证,想从身份证中提取他的生日和性别,就可以用到MID函数。
- 首先是生日,我们都知道身份证中是有自己的出生年月的,就是从第7位开始的后8位就是我们的出生日日期,那么用MID函数就可以很简单的把他提取出来:
=MID(D3,7,8)
看看结果
虽然提取出来了,但是不是看着很不显明,这里就要用到前面说的TEXT函数了。
回忆一下TEXT函数,TEXT函数是将数值转换为按指定数字格式表示的文本。那正好这里我们就把我们提取出来的数字换成更清楚的日期模式,公式如下:
=TEXT(MID(D3,7,8),"0000-00-00")
往下拉,看看结果
这里的0000-00-00是TEXT里参数的一个常用代码,大家可以自己去查一查,这个参数的代码比较多,刚好这个日期的比较常用,咱们记着就行。
- 再就是性别,判断性别时候,我们得用一下MOD函数,就是一个简单的求余函数,有两个参数,例如写成MOD(3,2),就是3除以2,结果余1。
为什么要用到余数,大家可以仔细了解一下身份证号的规则,身份证号里不止隐藏了一个人的生日,还有地区和性别的,当身份证第17位是个单数,就是男,双数为女。
那这个性别就可以看成第17位除以2,如果余数为1,那就是男,如果余数为0,就是女。
那接下来就要用到公式了:
=IF(MOD(MID(D3,17,1),2)=1,"男","女")
看看结果
因为前面17位不小心都打成了双数,就补个单数看下效果。
这个公式MID公式的结果是作为MOD的第一个参数,整个MOD函数又是作为IF函数第一个参数的部分,就是MOD函数的结果如果等于1,那就是男,否则就是女。
IF函数在前面也讲到过,就是一个判断真假,真的就怎么样,否则就怎么样。
那如果MOD函数的结果是1,相当于MID里提取的这个数除以2余1,也就是提取的这个数是单数,那IF里1=1就是真的,那这个人就是男的,不然就是女的。
至于其他的根据身份证号查省啊,区啊的大家可以自己去搜一下规则了试一下,这是一个很简单常用的实例,实例工作中运用到这个函数也很多。
好了,今天就学到这里,下次继续。
,