语言建立一个学生籍贯管理簿_编写一个Excel自定义函数,身份证信息提取如探囊取物...

观看视频更直观

我们建立信息表时不仅要输入性别、生日和年龄等信息,往往也需要输入身份证号码,而身份证号码中包含有籍贯、性别、生日和年龄等信息,从身份证号码中提取上述信息可以减少输入工作量,提高工作效率。利用Excel中的内置函数可以完成,但略显烦琐,要用到MID 函数、TEXT函数、、IF函数、ISEVEN函数(或ISODD函数或MOD函数)、DATEDIF函数、TODAY函数,很多人难以灵活使用。

我利用VBA在Excel中自定义了一个IDinfo函数,一个函数就能完成从身份证号码中提取出性别、生日与年龄信息,还自动甄别身份证号码输入正误,特别实用。

一、插入模块并复制粘贴代码

打开Excel后新建一个工作簿,右击"sheet1工作表标签,在弹出的快捷菜单中选择"查看代码"命令,打开VBA窗口,单击"插入"菜单→"模块"命令,插入一个模块,选中其中的"模块1",将下面的代码复制到其中即可。

Public Function IDInfo(strID As String, Optional bType As Byte = 1)

Application.ScreenUpdating = False

Dim i As Byte, s As String

If Len(strID) <> 18 Then

IDInfo = "身份证号码错误"

Exit Function

'若文本长度不等于18,返回"错误"并退出函数

End If

For i = 1 To 17

If Asc(Mid(strID, i, 1)) < 48 Or Asc(Mid(strID, i, 1)) > 57 Then

IDInfo = "身份证号码有误"

Exit Function

'若1至17位不是数字,返回"错误"并退出函数

End If

Next

For i = 1 To 17

a = Val(Mid(strID, i, 1)) '从左至右依次取得各位上的数字

w = (2 ^ (18 - i)) Mod 11 '计算加权因子

k = k + a * w '累计计算加权因子与数字的乘积和

Next i

k = k Mod 11 '求除以11的余数

s = Mid("10X98765432", k + 1, 1)

If s <> Right(strID, 1) Then

IDInfo = "身份证号码错误"

Exit Function

'若身份证号码校验错误,返回"错误"并退出函数

End If

Select Case bType

Case 1 '获取性别

If Val(Mid(strID, 17, 1)) Mod 2 = 0 Then

IDInfo = "女" '偶数性别为女

Else

IDInfo = "男" '奇数性别为男

End If

Case 2 '获取生日

Dim iDate As Date

iDate = WorksheetFunction.Text(Mid(strID, 7, 8), "#-00-00")

IDInfo = Format(iDate, "Long Date")

Case 3 '获取年龄

IDInfo = Format(Now, "yyyy") - Val(Mid(strID, 7, 4))

If Val(Mid(strID, 7, 4)) = 0 Then IDInfo = ""

End Select

End Function

d2b1c1506264fa66729f9a0b85b7eeb8.png

二、IDinfo自定义函数的使用

1、函数语法:IDInfo(strID,[ bType])

strID:必需参数,代表身份证号码或对身份证号码的引用。

bType:可选参数,表示获取信息的类型,1或省略表示获取性别,2表示要获取生日,3表示要获取年龄。

2、使用范例

f5c46ed95ac9df85d57d529788de39fa.png

⑴A列存储身份证号码,其中A2为正确身份证号码,其中均为杜撰的错误身份证号码。

⑵在B2单元格内输入"=IDinfo($A2, COLUMN(A1))",拖曳B2填充柄到D2单元格,再拖曳至所需目标处,如图中D2单元格。注意:为了能正确拖曳复制公式,第1个参数要用混合引用,列锁定行相对;第2个参数使用COLUMN函数也是为了方便拖曳,COLUMN函数返回列的列标,如COLUMN(A1)就是返回1即A列的列标,公式拖曳到C2、D2时,COLUMN(A1)就相应变成了COLUMN(B1)、COLUMN(C1),它们分别返回2和3,如果你不理解COLUMN函数就直接输入参数1、2、3也行,数据较少也不麻烦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原码一位乘法器设计_数字IC校招基础知识点复习(七)——超前进位加法器、Wallace树、Booth乘法器...

1.超前进位加法器看了一些面经&#xff0c;提到会让你用基础的门搭加法器&#xff0c;因此首先得熟悉半加器&#xff0c;全加器等最基础的加法器才能理解之后的超前进位加法器&#xff0c;树型加法器等复杂的加法器。半加器的输入为a&#xff0c;b&#xff0c;输出为结果s和进位…

保存点云数据_3D点云配准(二多幅点云配准)

本文首发于微信公众号「3D视觉工坊」&#xff1a;3&#xff24;点云配准&#xff08;二多幅点云配准&#xff09; 在上一篇文章 点云配准&#xff08;一 两两配准&#xff09;中我们介绍了两两点云之间的配准原理。本篇文章&#xff0c;我们主要介绍一下PCL中对于多幅点云连续配…

url存在宽字节跨站漏洞_5分钟速览丨常见的Web安全漏洞及测试方法

中秋小长假“余额”就剩半天了尽管心里有太多不舍也要调整自己毕竟假期都是短暂的工作才是职场人生的常态为了尽快消除“假日综合症”e小安贴心送上小文一篇小伙伴们赶紧“脉动”回来吧各类web应用充斥在我们的网络生活中&#xff0c;但是因为开发者安全意识不强而导致的安全问…

9切换中文mac_超详细的Mac重装系统教程!让重装系统变得简单起来!

mac电脑该怎么重装系统&#xff1f;苹果电脑在长时间使用后&#xff0c;系统可能会变得比较慢&#xff0c;另外各种缓存垃圾也会越堆越多&#xff0c;影响电脑的反应速度。mac OS系统是苹果电脑独有的操作系统,重装mac系统过程和Win系统完全不同,所以第一次使用苹果电脑的用户都…

delphi datasnap断线后再次连接_电脑连接WiFi后经常出现断线断开连接问题的解决方法...

电脑连接WiFi总是断线怎么办&#xff1f;有用户的笔记本在连接无线网络后&#xff0c;一直出现断线问题&#xff0c;并且网速也很慢&#xff0c;这是怎么回事&#xff1f;电脑连接WiFi后经常断开连接该如何解决&#xff1f;下面给大家分享具体操作步骤。操作步骤&#xff1a;1、…

添加javascript代码:_JavaScript(1)

一、JavaScript组成1.ECMAScript&#xff1a;是ECMA制定的脚本语言的语法标准&#xff0c;基础语法的规范&#xff0c;为了让不同的浏览器都可以运行通过标准运行出来的代码。2.文档对象模型(DOM)&#xff1a;JavaScript操作网页上的元素(标签)的API。3.浏览器对象模型(BOM)&am…

win 8 共享连接数是多少_局域网IP限速怎么配置,限速多少比较合适

由于视频和下载可以轻易的占用大量带宽&#xff0c;为了网络的稳定运行&#xff0c;大部分局域网都会对客户端进行一定的限速。本文中&#xff0c;我将介绍如何根据带宽来做限速&#xff0c;限速设置多少比较合理&#xff1f;1. 限速多少比较合理&#xff1f;正常的办公上网&am…

xp 4g内存补丁_32位操作系统导致电脑可用内存不足4G

现象描述今天给大家分享一个关于电脑使用的小知识&#xff1a;电脑安装32位操作系统&#xff0c;导致电脑可用内存低于4G。详细解释一下&#xff1a;如果你的电脑安装的操作系统是32位操作系统&#xff0c;无论你电脑安装了多大的内存&#xff0c;可用内存都不会超过4G&#xf…

maven 镜像_Maven(一)

1. 掌握M2Elipse插件安装及Maven仓库的配置2. 掌握Maven工程目录结构和创建工程3. 掌握Maven工程的关系4. 掌握Maven常见的插件5. 掌握Maven命令壹、什么是 Maven在Maven中&#xff0c;可以理解为所有的项目都是一个个的对象。贰、Maven 和 ANT 的区别叁、 Maven 的下载与 IDE …

文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit

QPlainTextEdit简介QPlainTextEdit小部件是一个用于编辑和显示纯文本控件&#xff0c;QPlainTextEdit控件与QTextEdit控件使用了相同的技术和概念&#xff0c;但是它为纯文本处理提供了优化。QPlainTextEdit是一个支持纯文本的高级查看器/编辑器&#xff0c;可以处理大型文档并…

使用通用mapper实现条件查询_【微服务】152:Stream流和通用mapper批量查询的使用...

今天是刘小爱自学Java的第152天。感谢你的观看&#xff0c;谢谢你。学习计划安排如下&#xff1a;补充完昨天商品查询中关于分类和品牌的部分&#xff0c;其中牵扯到了两个非常重要的知识点&#xff1a;Stream流的使用&#xff0c;这个学过后基本就没怎么使用过&#xff0c;这次…

java递归实现多级菜单栏_vue+ java 实现多级菜单递归效果

效果如图&#xff1a;大概思路&#xff1a;树形视图使用的是vue官方事例代码&#xff0c;java负责封装数据&#xff0c;按照vue官方事例的数据结构封装数据即可。有两个需要关注的点&#xff1a;1.官方事例的数据结构是一个对象里面包含着集合&#xff0c;而不是一个集合对象 2…

mfc打开一个.txt文件并进行处理_文件处理方法Python

你好&#xff0c;我是goldsunC让我们一起进步吧&#xff01;1. 文件说明文件是存储在存储器上的数据序列&#xff0c;在计算机中&#xff0c;所有文件都是以二进制的方式进行存储的&#xff0c;而文件的展示形式一般分为两种&#xff1a;文本形式和二进制形式。文本文件由单一特…

qt的如何调整显示不为科学记数法_Excel操作技巧:如何将信息快速准确的录入Excel?...

前面几篇文章中&#xff0c;给大家介绍了一些excel的基本操作技巧&#xff0c;以及如何高效地浏览表格。相信大家多少都会获得一点收获&#xff0c;希望能够为大家提供一些工作上的帮助。工作中&#xff0c;老板经常会安排我们手动输入一些数据&#xff0c;考虑到我们要不停的手…

如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

直接alter table add index 添加索引&#xff0c;执行一个小时没反应&#xff0c;并且会导致锁表&#xff1b;故放弃该办法&#xff0c;最终解决办法如下&#xff1a;一.打开mysql 命令行客户端这里我们那可以看到导出的数据文件所存放的默认位置 C:\ProgramData\MySQL\MySQL …

qchart画完以后删除_冬天的夜晚很难画?老师分步骤教你画,简单易学,收藏起来临摹...

今日绘画主题&#xff1a;冬天的夜晚冬天是美好的&#xff0c;也是很多画家喜欢创作的题材之一&#xff0c;但是&#xff0c;冬天的夜晚却是很难画&#xff0c;今天分步骤图解教大家画冬天的夜晚&#xff0c;快收藏起来临摹吧。>>>【第一步】&#xff1a;先来画线稿&a…

lrtemplate如何导入pr_PR模板使用套路讲解 视频剪辑教程

​pr模板在使用的时候需要注意的事项以及如何正确操作https://www.zhihu.com/video/1237765482302226432pr模板在使用的时候需要【注意的事项】1、下载的模板必须解压后使用2、下载模板的时候网站上页面都会有介绍模版所支持的版本3、弹出不同版本的提示窗口&#xff0c;点击确…

linux没有usr目录_了解linux系统目录,sys,tmp,usr,var!

linux小白到大神的成长之路&#xff1a;了解linux系统目录&#xff0c;sys,tmp,usr,var&#xff01;本经验由宗龙龙原创,全文共600多字&#xff0c;阅读需要14分钟&#xff0c;如果文中存在错误&#xff0c;还请大家多多指点&#xff0c;我会积极改进的&#xff01;​这篇文章将…

svd奇异值分解_奇异值分解SVD

点击上方蓝字关注我们奇异值分解(SVD)在计算机视觉中有着广泛的应用&#xff0c;如数据降维、推荐系统、自然语言处理等。本文是介绍SVD的数学计算过程&#xff0c;并从SVD的性质说明其应用的原理。01特征值与特征向量奇异值分解(SVD)与特征分解类似&#xff0c;是将矩阵分解为…

python turtle画房子详细解释_[宜配屋]听图阁

我就废话不多说了&#xff0c;直接上代码吧&#xff01;import turtletturtle.Turtle()turtle.Turtle().screen.delay(0)tleftturtle.Turtle()#第一部分t.penup()t.goto(0,0)t.pendown()t.left(20)t.forward(110)t.left(25)t.forward(40)t.left(100)t.circle(180,20)t.right(12…