access通过身份证号提取性别_利用身份证号判断性别、周岁、虚岁,提取生日——函数皆可盘...

身份证号共18位,利用函数可以从中判断出很多信息。本文主要讲解利用函数判断性别,提取生日,判断周岁,虚岁,以及如何对身份证号中的出生日期部分隐藏为"********"

1、判断性别


身份证号的第17位数字,奇数为男性,偶数为女性,所以我们利用这一特点进行性别判断,公式如图1所示,下面我们进行公式分解讲解;

6fd9ce87f8c90df4e8467e85e58eb7c5.png

=MID(字符串,开始位置,字符个数),所以=MID(B2,17,1)就是从身份证号的第17位开始,提取1个数。

然后利用MOD函数,利用第17位数除以2,余数为0,则为偶数,余数为1,则为奇数。

最后利用IF函数,当余数结果为0时,输出"女",余数结果为1数,输出"男"。

2、生日提取


某公司人员信息表如下图2所示,人事主管要求你统计出员工生日,方便公司每月举办生日会。

e0601af787eda2fd4fa9ea7909685824.png

这里如果我们直接用=TEXT(MID(F3,7,8),"0-00-00")的话,能统计出出生日期,但是它还是数值的格式,不方便我们进行筛选统计。所以这里我们用DATE函数进行统计,=DATE(年,月,日),利用MID函数提前身份证号第7~10位为年,第11~12位为月,第13~14位为日。最后将生日列的日期格式根据需要设置为"mm/dd"即可。

0d7d243aeeb3af47cc4886eda475ff48.png

3、判断虚岁与周岁


本小节的主要思想是:计算虚岁只需当下的年减去出生的年即可;计算周岁时,需要判断身份证中的生日日期是否超过了当前的日期,没超过的话就是=当前的年-出生的年,如果超过了,那么就是=当前的年-出生的年-1。

c665eccc683787faa088453784282383.png

在同年初年的李红和张明来说,张明生日为12月24日,周岁为17,而李红生日为11月21日,周岁则为18.

对以上公式进行分解,=TODAY(),返回当前的日期,即2019/12/4;=YEAR(),返回日期的年份,=TODAY(YEAR())=2019;=MID(B2,7,4)就是张明的出生日期2001,最后进行相减便是张明的虚岁年龄18岁。

在核算周岁时,有几个需要注意点,一、我们需要使用一个DATEDIF函数,来判断出生日期与当前日期的相差日期,然后转化为以年为单位的表示方式;二、对于身份证中提取出的出生年月日,我们运用TEXT函数,转化为"yyyy-mm-dd"的形式,在TEXT函数中的表示方式为"0-00-00";

4、对身份证号中的出生信息进行隐藏


对于身份证号中的8位出生年月日,我们在火车票上,网站信息上,都会看到其中八位数都是被"********"替换,那么这个功能是怎么实现的呢?

7c4af1d07e38efac53e1bc56ca01f093.png

这里使用的是REPLACE函数,用法简单言之就是将指定字符串,从第几位开始的多少位数,用""号内的字符进行替换,=REPLACE(B2,7,8,"********")就是将身份证号中,从第七位开始,连续八位数,用"********"进行替换。这样可以很好的保护大家的信息哦。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
struct regmap_access_table结构体中的.yes_ranges和.n_yes_ranges字段是用于指定某些地址范围内的寄存器是否可访问的。.yes_ranges是一个指针数组,每个指针指向一个struct regmap_range结构体,表示可访问的地址范围;.n_yes_ranges表示.yes_ranges数组的元素个数。 例如,以下代码定义了一个包含两个struct regmap_range结构体的数组: ``` static const struct regmap_range my_device_ranges[] = { { 0x00, 0x03 }, { 0x04, 0x07 }, }; ``` 这个数组表示定义了两个地址范围,第一个范围是0x00到0x03,第二个范围是0x04到0x07。 然后,在使用struct regmap_access_table定义寄存器访问表时,可以将这个地址范围数组传递给.yes_ranges字段,例如: ``` static const struct regmap_access_table my_device_access_table = { .reg_bits = 8, .val_bits = 32, .max_register = 0x07, .writeable_reg = my_device_writeable_reg, .readable_reg = my_device_readable_reg, .volatile_reg = my_device_volatile_reg, .precious_reg = my_device_precious_reg, .cache_type = REGCACHE_FLAT, .yes_ranges = my_device_ranges, .n_yes_ranges = ARRAY_SIZE(my_device_ranges), }; ``` 这个访问表表示定义了一个8位地址、32位寄存器值的寄存器访问表,最大寄存器地址为0x07,可读写的寄存器由my_device_writeable_reg和my_device_readable_reg函数定义,易失性寄存器由my_device_volatile_reg函数定义,需要保护的寄存器由my_device_precious_reg函数定义,使用平坦缓存模式。另外,访问表还指定了两个地址范围0x00到0x03和0x04到0x07是可访问的。 总的来说,.yes_ranges和.n_yes_ranges字段可以用于指定某些地址范围内的寄存器是否可访问,这对于一些特殊的寄存器访问场景非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值