Excel提取身份证年龄和性别③
问题场景
从user表中的身份信息中拿到用户的年龄和性别;
以下方法也可适用于提取其他数据,目的在于通过实例操作了解更多函数用法;
以下图中数据都为测试数据,不具备真实性!
场景一
从user表中的18位身份证信息列中提取所有用户的年龄。
- 不考虑15位的身份证信息。
目标
- 提取18位身份证信息列的出生日期来判断所有用户的年龄。
解决方案一
用year()、today()、mid()函数实现。
- 函数解释
=YEAR(serial_number)
//将系列数转换为年,serial_number一个日期值,其中包含要查找的年份=TODAY()
//TODAY函数没有参数,作为YEAR函数的参数来获取当前年份
//MID函数参考上篇文章,有解释含义和用法
第一步:在G2单元格英文状态下输入:=YEAR(TODAY())-MID(D2,7,4)。
- 公式解释:使用TODAY函数作为 YEAR函数的参数来获取当前年份,减去他的出生年份(MID函数从D2格单元的第7位起截取4位获取出生年份)。
- 第二步:鼠标移到G2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。
- 第三步:最后结果。
解决方案二
用Datedif()函数、Text()函数和MID()函数。
- 函数解释
=DATEDIF(start_date,end_date,unit)
//Start_date起始日期;End_date结束日期;Unit为所需信息的返回类型,通常有三种"Y""M""D"。
//Y、M、D参数:分别计算开始日期与结束日期的年份差、月份差、和天数差。
//text函数参考上篇文章,有解释含义和用法。
第一步:在G2单元格英文状态下输入:=DATEDIF(TEXT(MID(D2,7,8),"00-00-00"),TODAY(),"y")。
- 公式解释:MID函数从D2格单元的第7位起截取8位获取出生年月日,再用Text函数转换为日期格式,最后用datedif函数计算当前年份和出生日期的年份差。
- 第二步:鼠标移到G2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。
- 第三步:最后结果。
解决方案三
用Datedif()函数、 date()函数和MID()函数。
- 函数解释
=DATE(year,month,day)
//将结果将设为日期格式,且year,month,day三个参数为年、月、日参数
//用法示例参考上篇。
第一步:在G2单元格英文状态下输入:=DATEDIF(DATE(MID(D2,7,4),1,1),TODAY(),"y")。
- 公式解释:MID函数从D2格单元的第7位起截取8位获取出生年月日,再用Date函数转换为日期格式(月和日的参数定1),最后用datedif函数计算当前年份和出生日期的年份差。
- 第二步:鼠标移到G2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。
- 第三步:最后结果。
解决方案四
分两步,先提取出生日期,上篇中详细介绍了怎么提取出生日期,这列可以拿来用;
再用上述函数直接跟当前年份做差算出年龄。
场景二
从user表中的18位身份证信息列中判断所有用户的性别。
- 不考虑15位的身份证信息。
目标
从18位身份证信息中判断所有用户的性别。
- 18位身份证的第17位代表性别,奇数为男,偶数为女。
解决方案一
用if()、MOD()、MID()函数。
- 函数解释
=IF(logical_test,value_if_true,value_if_false)
//例:=if(2>1,1,0),如果2>1,则返回1否则返回0;
//例:=if(2>1,"Ture","False"):如果2>1,则返回Ture否则返回False=MOD(number,divisor)
//求余函数,Number 为被除数;Divisor 为除数,返回余数。
第一步:在H2单元格英文状态下输入:=IF(MOD(MID(D2,17,1),2),"男","女")或者=IF(MOD(MID(D2,17,1),2)=1,"男","女")。
- 公式解释:MID函数从D2格单元的第17位,再用MOD函数求余,在用IF函数判断余数,余数为0则是假值,返回“女”,否则返回“男”(Excel中真值为0可以代表假)。
- 第二步:鼠标移到H2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。
- 第三步:最后结果。
解决方案二
用if()、ISODD()、MID()函数。
- 函数解释
=ISODD(number)
//判断参数是不是奇数,如果是返回ture,否则返回False.
第一步:在H2单元格英文状态下输入:=IF(ISODD(MID(D2,17,1)),"男","女")。
- 公式解释:MID函数从D2格单元的第17位,然后用ISODD判断第17位是否为奇数,在用IF函数判断如果是,返回“男”,否则返回“女”。
- 第二步:鼠标移到H2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。
- 第三步:最后结果。
总结
实际业务场景复杂时,如果不能一次性解决问题,可择优使用、或可结合使用,多尝试,办法总比困难多!
Excel提取身份证年龄和性别③的更多相关文章
- Excel提取身份证出生日期②
问题场景 从user表中的身份信息中提取用户的出生日期: 以下方法也可适用于提取其他数据,不仅是身份证信息: 以下图中数据都为测试数据,不具备真实性! 场景一 user表中的18位身份证,提取出生日期 ...
- Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位 ...
- Java中校验身份证号合法性(真伪),获取出生日期、年龄、性别、籍贯
开发过程中有用的身份证号的业务场景,那么校验身份证的合法性就很重要了,另外还有通过身份证获取出生日期.年龄.性别.籍贯等信息, 下面是本人在开发中用到的关于校验身份证真伪的工具类,可以直接拿来使用,非 ...
- C#根据身份证号码,计算生日、年龄、性别
朋友谈及身份证相关的信息,才了解到原来省份证号码中包含了年龄和性别. 这样在数据库中,就不必单独留字段存放它们了(不过,要根据具体情况来,要是读取频率较高,还是单独列出为好),这样顺带解决了年龄变更的 ...
- js脚本根据身份证号获取性别、年龄、家庭地址、生日
做项目测试时需要根据身份证号获取其信息,也不想调接口,就自己在本地通过收集资料整合了一个
- java根据身份证号和获取用户年龄和性别的工具类
import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...
- IOS 根据身份证号码获取 年龄 生日 性别
/** 从身份证上获取年龄 18位身份证 */ -(NSString *)getIdentityCardAge:(NSString *)numberStr { NSDateFormatter *for ...
- CardUtil算出当前身份证持有者的性别和年龄
import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...
- JavaScript 通过身份证号获取出生日期、年龄、性别 、籍贯
JavaScript 通过身份证号获取出生日期.年龄.性别 .籍贯(很全) 效果图: 示例代码: //由于没有写外部JS,所以代码比较长!!! <!DOCTYPE html PUBLIC &qu ...
随机推荐
- 【Laravel】为Eloquent 模型设置全局作用域和局部作用域进行查询
全局作用域 所谓「全局作用域」,指的是预置过滤器在注册该「全局作用域」的模型类的所有查询中生效,不需要指定任何额外条件. 以 User 模型类为例,我们在系统中可能只想针对已经验证过邮箱的用户进行操作 ...
- animation动画汇总(一阶段项目)
animation 属性 动画属性: 1.animation-name:规定需要绑定到选择器的 keyframe 名称. 2.animation-duration:规定完成动画所花费的时间,以秒或毫秒 ...
- js:事件(注册、解绑、DOM事件流、事件对象、事件委托)
1.注册事件 (1)传统方式注册事件 <body> <button id="b1">请点击</button> <script> va ...
- bootstrap-treeview 研究一下
一直以来都是拿来主义,现在正好有空,也正好用到,准备好好研究下bootstrap-treeview. 实现目标:可搜索,可复选选中的权限控制菜单项. 研究失败 转 jstree
- 03_Linux定制篇
第十四章 JAVAEE定制篇 搭建JAVAEE环境 14.1 安装JDK 1)先将软件通过xftp5上传到/opt下 2)解压缩到/opt 3)配置环境变量的配置文件vim/etc/profile J ...
- Python decode()方法
描述 Python decode() 方法以 encoding 指定的编码格式解码字符串.默认编码为字符串编码.高佣联盟 www.cgewang.com 语法 decode()方法语法: str.de ...
- luogu P3403 跳楼机 同余最短路
LINK:跳楼机 很早之前就想学的一个东西.发现这个东西果然神奇. 我们要找到 所有的 w满足 \(w=1+ax+by+cz\).且 \(1\leq w\leq h\) 暴力枚举是不行的. 做法是这样 ...
- Hadoop学习问题记录之基础篇
目的 记录学习hadoop过程中遇到的基础问题,无关大小.无关困扰时间长短. 问题一 全分布式环境中运行mapred程序,报异常:java.net.NoRouteToHostException: 没有 ...
- Python Selenium 搭建Web UI自动化
Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python ...
- python1.1列表知识点:
#定义列表[]a=[1,2,3,4,5,6,7,"hello","world"]#列表索引从0开始,指定位置提取元素print(a[3])print(a) #列 ...