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】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...
- 配置mongoDB的错误
1,将启动配置到服务的时候没有反应,后来发现没有用管理员模式打开shell命令,所以没有反应. 2,用管理员模式的时候报错 格式问题,将由空格的路径用“”包住即可 3.启动的时候报错windows不能 ...
- PHP imagecolorclosesthwb - 取得与指定的颜色最接近的色度的黑白色的索引
imagecolorclosesthwb — 取得与指定的颜色最接近的色度的黑白色的索引.高佣联盟 www.cgewang.com 语法 int imagecolorclosesthwb (s res ...
- layui 父页面获取弹窗传递的值 和 父页面传值给子弹窗的方法
1.父页面获取子页面(弹窗)的值: 现在父页面页面加载方法中定义方法,专门用来获取从子页面的值 $(document).ready(function() { //拿到子窗口中传回的数据 functio ...
- [转]17个常用的JVM参数
作者:SimpleSmile_5177 来源:https://www.cnblogs.com/Simple-Object/p/10272326.html 前言 大家都知道,jvm在启动的时候,会执行默 ...
- 《国际化Web项目测试:记第一次兼职测试的经历(一)》
疫情期间我一直在家远程办公,无意间接到了个做测试兼职的机会.在不耽搁本职工作的情况下,我从今年五月份开启了主职和副职的并行的状态.这种项目经历对于我来说算是一次全新的体验,当然也真是累的够呛.到目前为 ...
- OpenCL Kernel设计优化
使用Intel® FPGA SDK for OpenCL™ 离线编译器,不需要调整kernel代码便可以将其最佳的适应于固定的硬件设备,而是离线编译器会根据kernel的要求自适应调整硬件的结构. 通 ...
- win7(64位)使用DEBUG
win7 64位好像是不能直接打开DOS进行DEUBG的,于是查找相应解决方案 开始看其他人的帖子,写得语焉不详,后来一查,居然是抄百度的.....自己不觉得low吗... 参考百度经验的回答http ...
- Hotspot GC研发工程师也许漏掉了一块逻辑
本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 概述 今天要说的这个问题,是我经常面试问的一个问题,只是和我之前排查过的场景有些区别,属于另外一种情况.也许我这里讲了这个之后,会成为不 ...
- CSS表单与数据表(下)
2.表单 表单是用户输入内容的地方.表单涉及的控件很多,而且一直很难给它们应用样式.无法控制样式的部分,可以通过自定义控件来解决. 2.1 简单的表单 2.1.1 fieldset与legend fi ...