Excel根据身份证号提取信息

概览

本篇文章主要对根据身份证号码提取出生年月日、年龄、性别、退休年龄这三项进行讲解。

一. 提取出生年月日

公式:=TEXT(MID(B2,7,8),"0000-00-00")

  1. MID(B2,7,8):表示从单元格 B2 中的字符串(这里是身份证号),从第 7 个字符开始,提取长度为 8 个字符的子串。通常这 8 个字符就是包含出生年月日的信息;

  2. TEXT(..., "0000-00-00"):使用 TEXT 函数将提取出来的出生年月日信息按照指定的格式"0000-00-00"进行格式化显示。这样就可以把类似"19901010"这样的字符串转化为"1990-10-10"这种日期格式的外观。

二. 提取年龄

公式:=DATEDIF(C2,"2024-06-13","y")

  1. DATEDIF函数用于计算两个日期之间的差值;
  2. C2是起始日期所在的单元格;
  3. "2024-06-13"是结束日期;
  4. "y"表示要计算的是两个日期之间的整年数。

三. 性别

公式:=IF(MOD(MID(B2,17,1),2)=1,"男","女")

  1. MID(B2,17,1):从单元格 B2 所代表的内容(比如身份证号)中,提取从第 17 位开始的长度为 1 的字符。在身份证号中,第 17 位数字通常用于表示性别;
  2. MOD(MID(B2,17,1),2):对提取出来的第 17 位数字进行取模运算(即除以 2 后的余数);

IF(...):根据取模运算的结果进行判断,如果余数等于 1(说明第 17 位是奇数),则返回"男";如果余数为 0(说明第 17 位是偶数),则返回"女"。通过这种方式就可以根据身份证号的特定位置数字来判断对应的性别。

四. 提取计算退休年月日

公式:=EDATE(D2,IF(F2="男",720,IF(F2&C2="女干部",660,600)))

使用EDATE函数计算退休年月。EDATE函数的第一个参数是起始日期,第二个参数是间隔的月数。第一个参数加上第二个参数的值,比如起始是2024-06-13,第二个参数是120(10年),那么最后得到的数据是2034-06-13,对应的,如果第二个参数是负数,则时间往前推。

  1. IF(F2="男",720,IF(F2&C2="女干部",660,600)):这部分是一个嵌套的IF函数,用于确定间隔的月数。它根据F2单元格中的性别和C2单元格中的职级来判断;
  2. 如果性别为"男",则返回 720,表示 60 岁退休(720 个月 = 60 年);
  3. 如果性别为"女"且职级为"女干部",则返回 660,表示 55 岁退休(660 个月 = 55 年);
  4. 如果性别为"女"且职级不是"女干部",则返回 600,表示 50 岁退休(600 个月 = 50 年)。

五. 拓展

公式:=COUNTIFS($A:$A,$G2,$C:$C,H$1)/COUNTIF($A:$A,$G2)

COUNTIFS($A:$A,$G2,$C:$C,H$1):这部分使用 COUNTIFS 函数进行多条件计数。它统计在列 A 中满足等于 $G2 这个条件,同时在列 C 中满足等于 H$1 这个条件的单元格数量。

/:表示除法运算。

COUNTIF($A:$A,$G2):这里使用 COUNTIF 函数统计在列 A 中等于 $G2 的单元格数量。

疑问:公式中的$是什么?

在 Excel 中,$符号用于表示绝对引用。绝对引用是指在公式中使用单元格或单元格区域的地址时,无论将公式复制到哪个位置,引用的单元格地址都不会发生变化。

详细解释:

css 复制代码
例如,在公式=$A$1+$B$1中,$A$1和$B$1都是绝对引用,
无论将公式复制到哪个单元格,$A$1和$B$1始终指向
 A1 和 B1 单元格。
相对引用则是指在公式中使用单元格或单元格区域的地址时,
当将公式复制到其他位置时,引用的单元格地址会根据
相对位置自动调整。例如,在公式=A1+B1中,
A1 和 B1 是相对引用,当将公式复制到
 C2 单元格时,公式会自动调整为=C1+D1。
混合引用则是指在公式中同时使用绝对引用和相对引用。
例如,在公式=$A1+B$1中,$A1是绝对引用,B$1是相对引用,
当将公式复制到 C2 单元格时,公式会自动调整为=$A2+C$1。
在输入公式时,可以通过手动输入$符号来指定绝对引用,
也可以在选中单元格地址后按 F4 键来快速切换绝对引用、
相对引用和混合引用。

相关例子可参考 按部门统计男女比例,方法比拼

相关推荐
开心点幸运点11 小时前
Excel——宏教程(1)
excel
boy快快长大20 小时前
将大模型生成数据存入Excel,并用增量的方式存入Excel
java·数据库·excel
Leuanghing20 小时前
使用Python生成F分布表并导出为Excel文件
开发语言·python·excel·f分布
爱编程的小生20 小时前
Easyexcel(4-模板文件)
java·excel
今日之风甚是温和1 天前
【Excel】拆分多个sheet,为单一表格
java·excel·sheet·vb宏
如意机反光镜裸1 天前
Excel如何批量导入图片
excel
滨HI02 天前
python中Pandas操作excel补全内容
python·excel·pandas
Leuanghing2 天前
使用Python生成卡方分布表并导出为Excel文件
python·excel·pandas·scipy·卡方分布表
叮当喵是mao2 天前
python基础知识(七)——写入excel
android·python·excel
阿呆5912 天前
使用 Excel 的功能来快速在 TXT 文件中添加一列零
excel