字符提取Mid、Left、Right三兄弟,超实用!

点击上方蓝字
「Excel不加班」
关注

看下一篇

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
卢子:提到字符提取 , 不得不提到Mid、Left、Right三兄弟 , 不管什么字符到他们手工 , 都能按要求完美地提取出来 。 老大Left可以从左边提取字符 , 老二Right可以从右边提取字符 , 老三Mid天赋最好 , 可以从任何位置提取字符 。
网友:既然这样就学Mid就行 , 何必全部都学 。
卢子:在函数的世界里 , 讲究合作精神 , 即使你再强大 , 也不能忽略别人的作用 。 其实做人又何尝不是这样 , 你能力好也不能看不起别人 , 因为别人通过努力也能成为有能力的人 。
网友:说的也是 , 现在讲究的是团队合作的精神 , 一个人如果离开团队 , 再牛逼也没用 。
卢子:那就通过几个例子来说明这三兄弟 。
1.

通过软件截图 , 默认情况下会出现软件名、时间、后缀 , 怎么将他们分别提取出来 。

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
提取左边6位 , 也就是软件名 。
=LEFT(A2,6)
从中间第8位开始提取14位 , 刚好就是时间 。
=MID(A2,8,14)
从右边提取3位 , 就是后缀 。
=RIGHT(A2,3)
2.
前面提到的是最理想状态 , 很多时候软件名不确定 , 后缀字符个数不确定 , 这样仅仅通过简单的办法是无法满足的 , 结合Find、Len函数会使问题变得简单 。

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
通过观察 , 软件名后面都有“_”符号 , 利用FIND找到这个符号的位置 , 减去1就是软件名最后一个字符的位置 。
=LEFT(A2,FIND("_",A2)-1)
时间都是在“_”的后面 , 利用FIND找到这个符号的位置 , 加上1就是第一个数字的位置 , 因为是固定14位 , 提取字符数14就可以 。
=MID(A2,FIND("_",A2)+1,14)
后缀在“.”符号后面 , 后缀字符数就是总字符减去到“.”符号位置的总长度 。 也就是说
N=总字符 - “.”符号的位置FIND(".",A2)
N=LEN(A2)-FIND(".",A2)
=RIGHT(A2,LEN(A2)-FIND(".",A2))
3.
身份证是每个成年人的名片 , 有了它 , 可以获取省份、地区、出生日期、性别等信息 。 身份证很重要 , 要记得妥善保管好 。

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
身份证简介:
现行的身份证全部是18位 , 早期的是15位 。
前2位代表省份;
前6位代表地区码;
15位7-12位是出生年月 , 前面省略19,18位是7-14位是出生年月;
15位13-15位是代表性别 , 18位是15-17位是代表性别 , 奇数就是男 , 偶数就是女;
现行的身份证 , 18位号码是验证码 。
通过这些知道 , 要知道省份跟地区码必须有一份地区码的明细表才可以获取 。分页标题
地区码

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
根据前2位代表省份 , 前6位代表地区码 。
=VLOOKUP(LEFT(A2,2),地区码!A:B,2,0)
先用Left提取左边两个字符 , 用Vlookup获取省份对应值 , 同理可以获取地区 。
=VLOOKUP(LEFT(A2,6),地区码!A:B,2,0)
回头看看出生年月日:15位7-12位是出生年月 , 前面省略19,18位是7-14位是出生年月 。
=TEXT(IF(LEN(A2)=15,19,"")&MID(A2,7,IF(LEN(A2)=15,6,8)),"0-00-00")
先判断是不是15位 , 如果是前面就连接19 , 否则连接空 , IF(LEN(A2)=15,19,"")
如果是15位就提取6位 , 否则就提取8位IF(LEN(A2)=15,6,8)
IF(LEN(A2)=15,19,"")&MID(A2,7,IF(LEN(A2)=15,6,8)) , 到这里就是将出生日期变成统一8位的格式如19870905
利用Text将8位的日期格式显示成1987-09-05
这是传统的思路 , 但其实可以将公式再做精简 , 得到的结果需要将单元格设置为日期格式 。
=TEXT(MID(A2,7,11)-500,"#-00-00,")*1
网友:-500 , 还有#-00-00,是干嘛用的?
卢子:先来看看这几条公式
=TEXT(1999,"#,")显示2
=TEXT(1499,"#,")显示1
=TEXT(1001,"#,")显示1
=TEXT(501,"#,")显示1
也就是说这个“,”的作用就是将数字除以1000并四舍五入的结果 , 也就是千位符 。
再回头看看MID(A2,7,11) , 不管是15还是18位身份证 , 从7位开始提取11位就是将提取到日期跟性别组成的所有数字 。 实际后面的3位是多余的 , 需要去除 。 TEXT(MID(A2,7,11)-500,"#-00-00,") , -500的作用就是将后面的数字变成小于500的数字 , 加上最后面的“,” , 其实就是舍去掉最后3位 , 前面多取了3位 , 现在还回去 , 有借有还 。
网友:如果这样直接后面3位不提取不就得 , 干嘛绕那么多弯 。
卢子:如果不提取是不是要像最开始一样判断是不是15 , 然后再决定取多少位 , 这样反而多了一个判断条件 。 不过这条公式有一个缺陷 , 就是当1930年前出生的人如290815会显示错误 。 不过正常这种年龄的人 , 你用他们的身份证还有意义吗 , 你懂的 。 一直以来我都觉得 , 写公式就是一个不断取巧的过程 。
15位13-15位是代表性别 , 18位是15-17位是代表性别 , 奇数就是男 , 偶数就是女 。
=IF(ISODD(MID(A2,15,3)),"男","女")
奇数偶数的判断可以利用最后1位判断 , 也可以通过所有字符判断 。 如123 , 最后1位是奇数 , 它就是奇数 , 跟整个数字判断的结果是一样的 。
MID(A2,15,3)提取15位的最后1位 , 跟提取18位的3位数字
ISODD(MID(A2,15,3)) , ISODD判断数字是不是奇数 , 是就返回TRUE , 否则返回FALSE
IF就是返回男女的对应值
说明:在低版本用MOD(数字,2)判断奇数跟偶数 。
网友:这后面两条公式太巧妙了!
卢子:毕竟像这种公式可遇不可求 , 并不是任何人都可以想到的 。 学习阶段可以让公式缩减到最少字符 , 但实际工作还是以正常思维处理为好 , 以防考虑不周全而出错 。
网友:收到 , 看来卢子还是属于比较严谨的人 。
【字符提取Mid、Left、Right三兄弟,超实用!】
VIP
888
元 , 一次报名 , 所有视频课程 , 终生免费学 , 提供一年在线答疑服务 。

字符提取Mid、Left、Right三兄弟,超实用!分页标题
文章图片
报名后加卢子微信chenxilu2019
, 发送报名截图邀请进群 。
推荐:为什么你经常加班?看完这6个Excel字符提取的案例就明白了
上篇:Excel一键分行 , 别再只会复制粘贴了!

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
有粉丝说 , 你这样每天分享文章 , 光看文章就可以把Excel学精通了 , 就没人报名你的课程 。
其实 , 我很久以前也说过 , 只要你坚持看文章三五年也可以成为高手 。 而报名课程会缩短时间 , 课程更全面 , 而且随时有答疑老师指导 , 一年就可以学得很厉害 。
说白了 , 就是用点小钱换你的时间而已 , 如果你的时间比较值钱 , 报名课程是最划算的 。
如果你有一大堆时间 , 闲得不知道如何安排 , 那可以看书或者看文章慢慢学 , 适合自己的就是最好的 。
京东满100减50活动 , 今天好像是最后一天 , 还没买书的记得买 。

字符提取Mid、Left、Right三兄弟,超实用!
文章图片

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
作者:卢子 , 清华畅销书作者 , 《Excel效率手册 早做完 , 不加班》系列丛书创始人 , 个人公众号:Excel不加班(ID:Excelbujiaban)

字符提取Mid、Left、Right三兄弟,超实用!
文章图片
请把「Excel不加班」推荐给你的朋友
学会了 , 请点在看↓↓↓