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 ...
随机推荐
- Java Script 数组
数组:有许多变量的集合,它们的名称和数据类型都是一致的. 定义 操作(添加修改) Var arr=new Array(): Var arr=[ ]; //定义 Var arr1=[ 1,2,3, ...
- 《Python Web开发学习实录》高清PDF版|百度网盘免费下载|Python Web开发学习实录
<Python Web开发学习实录>高清PDF版|百度网盘免费下载|Python Web开发学习实录 提取码:9w3o 内容简介 Python是目前流行的动态脚本语言之一. 李勇,本书共1 ...
- laravel 上线部署最佳实践
nginx 配置 listen 80 default_server; server_name xxxx; index index.php index.html; 优先 index.php ro ...
- 第四章 常用API(下)
4.1.String类 描述:该类代表字符串 构造方法: 方法 描述 public String() 初始化构造一个空白字符串 public String(char[] value) 通过字符数组初始 ...
- 给定两个列表,转换为 DataFrame 类型
import pandas as pd def get_data(): q1 = [] q2 = [] p1 = input("list 1:") p2 = input(" ...
- Java锁_读写锁
独占锁:是指锁一次只能被一个线程持有,ReentrantLock和Synchronized都是独占锁. 共享锁:是指锁可以被多个线程持有. 对于ReentrantReadWriteLock,其读锁是共 ...
- Python 字典(Dictionary) str()方法
Python 字典(Dictionary) str()方法 描述 Python 字典(Dictionary) str() 函数将值转化为适于人阅读的形式,以可打印的字符串表示.高佣联盟 www.cge ...
- 初学编程丨从零开始学习编程的基本路线,BAT程序员亲手总结!
编程并不是说代码怎么写,框架怎么用,业务怎么转换为代码逻辑,这些都不是编程的要素(但却是工作的刚需......).我认为按照下面这个路线来学习编程,会使自己在学习的路途上少去很多问题(比如为啥会有多线 ...
- 5.22 noip模拟赛
本来我是不想写的,无奈不会写.蒟蒻 考场就是想不出来 今天得到了100分额外水过了100分我是真的失败.还有一个根本不会check 感觉自己非常之菜. 这道题是这样的 还行吧比较有意思 首先确立一个真 ...
- electron开发 - mac平台的打包和签名 - 针对electron-builder的自动更新
配合自动更新 - 安装包签名(mac)(待补充) 前提:实现自动更新需要签名 一.本地开发调试mac签名(无需具有权限的appple账号) 打开xcode,xcode -> preference ...