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 ...
随机推荐
- 《Python Web开发学习实录》高清PDF版|百度网盘免费下载|Python Web开发学习实录
<Python Web开发学习实录>高清PDF版|百度网盘免费下载|Python Web开发学习实录 提取码:9w3o 内容简介 Python是目前流行的动态脚本语言之一. 李勇,本书共1 ...
- Python重命名和删除文件
Python重命名和删除文件: rename(当前的文件名,新文件名): 将当前的文件名修改为新文件名 程序: # os.rename('旧名字',’新名字‘) import os os.rename ...
- Python os.removedirs() 方法
概述 os.removedirs() 方法用于递归删除目录.像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般 ...
- P3250 [HNOI2016]网络
LINK:网络 一棵树 每次添加一条路径 或者删除之前的一条路径 或询问除了不经过某个点之外剩下的最大值. 一个显然的思路 对于一条路径的权值我们直接把权值塞上去 标记永久化一下即可. 考虑如何求答案 ...
- day21:正则函数&模块和包(import)
正则函数 1.search 通过正则匹配出第一个对象返回,通过group取出对象中的值 # search 通过正则匹配出第一个对象返回,通过group取出对象中的值 strvar = "1 ...
- 2017面向对象程序设计(Java)第十三周助教工作总结
时间飞逝,本学期即将接近尾声.不知不觉同学们已经学习java十三个星期了,想必同学们对Java课程体系及内容有了更加深入的理解,也应该摸索出了一套适用于自己的学习方法. 下面我对上周工作做以简单总结: ...
- xadmin 安装
xadmin 安装 环境(一定要一样) Python 3.6.2 Django 2.0 安装 pip install django==2.0, 指定特定的版本 pip install https:// ...
- sql server 存储过程的(包含事务)方法里面,采用游标循环,批量删除(修改)数据
sqlserver 数据库 1.下面是完整的 在存储过程中 使用游标进行 循环删除的实例(包括存储过程中,事务的应用) 2.有问题的话,欢迎随时讨饶我,相信大家看下注释应该就能明白了,很简单的一个,小 ...
- git使用-标签管理
1.查看所有的标签 git tag 2.创建标签 git tag name 3.指定提交标签的信息 git tag -a name -m "comment" 4.删除标签 git ...
- 2020重新出发,JAVA入门,关键字&保留字
关键字 & 保留字 关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用. 关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用.例如, cl ...