excel表格_excel函数公式大全_execl从入门到精通
一个函数抵N个公式,自定义函数提取身份证个人信息2024-04-25 18:10:36
Excel函数包括文本函数、统计函数、时间和日期函数、逻辑函数等14类函数,大大小小共计四百多个,虽然有如此多的函数,但也会遇到当前函数无法解决的问题,这时候就需要用到自定义函数;
自定义函数:顾名思义,就是自己定义的函数,当exce内置的函数无法满足工作需求,我们可以自定义一个函数来使用。
今天我们就用一个小例子,来展示自定义函数的魅力!
案例展示
每个人都有唯一一张身份证,从一张身份证中可以提炼出此人的性别、年龄、出生年月日,下图中自定义了一个函数,来提取员工的个人信息,如下图所示:
案例展示这里构建了一个函数,函数名为个人信息,自定义函数的名称可以随便起,最好能反映函数功能的名称,比如这里自定义函数主要是用来提取个人信息的,所以起名个人信息;
函数表达式:个人信息(参数1,参数2)
这个自定义函数一共有两个参数,第一个参数是个单元格,一般为存储身份证号码的单元格;
第二个参数可选值有三个,分别是0,1,2,表示要返回的数据类型,0表示返回年龄、1表示返回性别、2表示返回出生年月;
话不多说,直接来看如何实现。
自定义函数
打开Visual Basic,插入一个模块,输入以下代码:
Function /End Function代表自定义函数开始与结束,先定义函数名为个人信息,括号内为参数类型,参数1为单元格,参数2为一个字符串,默认等于0;
接着利用判断语句IF来完成函数的3个功能,一个参数代表一个功能。
第一段表示:如果输入的参数是0,则返回当前员工的年龄。先利用mid函数取出当年员工的出生年份,与当前年份的差值,即为年龄;
第二段表示:如果输入的参数是1,则返回当前员工的性别。对于当前的身份证号码,第17位数字表示性别:奇数表示男性,偶数表示女性;取出倒数第二位数字,除2取余,有余数代表是奇数男性,无余数代表是偶数女性,这里的iif函数与表格中的函数if功能一致,也是三个参数,第一个参数是判断条件,条件成立返回第二个参数,条件不成立返回第三个参数。
第三段表示:如果输入的参数是2,则返回当前员工的出生年月日。这里同第一段,利用MID函数取出员工的年月日,并利用TEXT函数来格式化输入。
详细代码如下所示:
Function 个人信息(rng As Range, Optional 参数 As String = 0)
If 参数 = 0 Then
个人信息 = Year(Now()) - (19 & Mid(rng, Len(rng) / 2, 2))
ElseIf 参数 = 1 Then
个人信息 = IIf(Mid(rng, 17, 1) Mod 2, "女", "男")
ElseIf 参数 = 2 Then
个人信息 = Application.Text(Mid(rng, 7, 8), "0000-00-00")
End If
End Function
注:函数名、参数名可随意改变,这里的参数0,1,2也可以用汉字年龄、性别、出生年月来表示。
效果展示小结
这里的一个函数就相当于平时的三个函数,实现了三个功能,极大的方便的我们的工作。同样,我们可以在上面的基础上继续添加其它功能,比如提取员工出生当天的星期、星座、工龄等等,可以实现N个小功能。
自定义函数的好处在于简化复杂的公式,可以和工作表函数相互嵌套使用,可重复利用。小伙伴们学会了吗?
如果觉得有用,欢迎关注我,定期分享数据小技巧。
标签: excel怎么建立自定义函数