用Excel函数计算年龄几法
2007-07-27 17:40
在Excel中利用系统时间和出生年月计算年龄是人事管理、工资统计中经常性遇到的工作,笔者由于工作关系对此有些研究,现将有关计算方法介绍如下,供读者朋友们参考: 一、利用DAYS360、CEILING和TRUNC函数 1.函数简介 ①DAYS360函数 它能按每年360天(每月30天)计算出两个日期间的天数,作为计算工龄的工具非常方便。它的语法为: DAYS360(Start_date,end_date,method) 其中,Start_date是计算时间段的起始日期,end_date是计算时间段的结束日期,method用来指定计算方法的逻辑值(取FALSE或忽略使用美国方法,取TRUE则使用欧洲方法)。 另外,不同地方计算工龄的规则不尽相同。有的按“虚工龄”计算,如1998年6月1日至2000年12月31日工龄为3年;而有的则按“实工龄”计 算,1998年6月1日至2000年12月31日工龄为2年;对此可使用CEILING函数或TRUNC函数处理。 ②CEILING函数 它的语法为: CEILING(number,significance) 其中number为待计算的数值,significance确定取整计算的倍数;该函数可将number沿着绝对值增大的方向,计算出一个最接近(或最小倍数significance)的整数。 ③TRUNC函数 它的作用是将数字的指定部分截去,计算出一个最接近的整数或小数,语法为: TRUNC(number,num_digits) 其中number为待计算的数值,num_digits用于指定小数部分的截取精度,取0时不保留小数、取1时保留一位小数(依次类推)。 2.计算公式 ①“虚工龄” 根据计算要求和有关函数的特点,计算“虚工龄”的公式为:“=CEILING((DAYS360(A1,B1))/360,1)”。公式中的A1和B1分 别存放工龄的起止日期,“DAYS360(A1,B1)”计算两个日期间的天数,(DAYS360(A1,B1))/360则按一年360天计算出工龄。 由于工龄一般以年为单位,故用CEILING函数将上面的计算结果(沿绝对值增大的方向)取整,从而得出“虚工龄”。 ②“实工龄” 计算“实工龄”的公式为:“=TRUNC((DAYS360(A1,B1))/360,0)”,公式中计算工龄天数的方法与上面的相同。TRUNC函数将 (DAYS360(A1,B1))/360的计算结果截去小数部分,从而得出“实工龄”。如果计算结果需要保留一位小数,只须将公式修改为 “=TRUNC((DAYS360(A1,B1))/360,1)”即可。 二、YEAR和RIGHT函数 1.函数简介 ①YEAR函数 它可以计算出日期序列数(如两个日期相减的结果)所对应的年份数,其语法为:YEAR(Serial_ number),其中Serial_ number为待计算的日期序列数,既可以是一个具体的数值,也可以是一个表达式。 ②RIGHT函数 该函数用来提取字符串最右边的若干个字符,因为YEAR函数的计算结果带有19等字样,必须利用RIGHT函数将它过滤掉。该函数的语法 为:RIGHT(Text,Num_chars),其中Text是待计算的字符串,Num_chars用来指定从右向左提取的字符串长度(忽略时取1), 例如“=RIGHT(“电脑爱好者”,3)”的计算结果为“爱好者”。 2.计算公式 由于YEAR和RIGHT函数的特点,它们组成的公式只能计算“实工龄”,具体形式为“=RIGHT(YEAR(A1-B1),2)”。公式中的A1和 B1分别存放工龄的截止和起始日期(正好与DAYS360函数相反),“YEAR(A1-B1)”计算出两个日期间的年份 数,RIGHT(YEAR(A1-B1),2)则通过自右向左提取年份的后两位(工龄一般都是一位或两位数)。计算出来的一位数工龄前有个“0”,与习惯 不太相符,这是上述公式的缺点。 三、N和INT函数 1.函数简介 ①N函数 N函数属于信息函数之列,它可以完成单元格对象的转换。就是将数值转换成数字,日期转换成序列值,TRUE转换成1,其它对象转换成0。其语法 为:N(value),其中的value是待转换的单元格对象,它可以是数值、日期等数据,也可以是一个表达式。 ②INT函数 该函数可以将一个数值向下取整为最接近的整数。语法为:INT(number),其中number是待取整的一个实数或表达式,用它将计算结果取整为“实工龄”非常方便。 2.计算公式 由于INT函数的固有特点,用N和INT函数构成的公式只能计算“实工龄”,具体形式为“=INT((N(A1-B1))/365)”。公式中的A1和 B1分别存放工龄的截止和起始日期,“N(A1-B1)”计算工龄的序列数(其实就是工龄的天数),(N(A1-B1))/365将N(A1-B1)的计 算结果转换为工龄,由于工龄数一般是小数,于是通过INT函数将它向下取最接近的整数。 Excel函数 计算实际年龄 1. 真实年龄=2007-出生的年份 =2007-YEAR(A1) int函数与round函数原理: 日期年份函数YEAR 语法:YEAR(serial_number)。 参数:serial_number为待计算年份的日期。 应用实例:“虚工龄”计算 所谓“虚工龄”就是从参加工作算起,每过一年就增加一年工龄,利用YEAR函数计算工龄的公式是“=YEAR(A1)-YEAR(B1)”。公式中的A1 和B1分别存放工龄的起止日期,YEAR(A1)和YEAR(B1)分别计算出两个日期对应的年份,相减后得出虚工龄。 2. 真实年龄=两个日期(出生、当前日期)之间年数 =datedif(A1,today(),"y") 真实年龄=总天数-出生年份 再除以 365 ,再四舍五入 =ROUND((TODAY()-A1)/365,0) =ROUND((TODAY()-A1)/365.25,0) 函数原理: TODAY函数 函数名称:TODAY 主要功能:给出系统日期。 使用格式:TODAY() 参数说明:该函数不需要参数。 应用举例:输入公式:=TODAY(),确认后即刻显示出系统日期和时间。如果系统日期和时间发生了改变,只要按一下F9功能键,即可让其随之改变。 特别提醒:显示出来的日期格式,可以通过单元格格式进行重新设置。 函数datedif excel中有一个函数列表中没有的函数datedif()。DATEDIF函数,除Excel 2000中在帮助文档有描述外,其他版本的Excel在帮助文档中都没有 说明,并且在所有版本的函数向导中也都不到此函数。但该函数在电子表格中确实存在,并且用来计算两个日期之间的天数、月数或年数很 方便。微软称,提供此函数是为了与Lotus 1-2-3兼容。 该函数的用法为“DATEDIF(Start_date,End_date,Unit)”,其中Start_date为一个日期,它代表时间段内的第一个日期或起始日期。End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。Unit为所需信息的返回类型。 “Y”为时间段中的整年数,“M”为时间段中的整月数,“D”时间段中的天数。“MD”为Start_date与End_date日期中天数的差,可忽略日期 中的月和年。“YM”为Start_date与End_date日期中月数的差,可忽略日期中的日和年。“YD”为Start_date与End_date日期中天数的差,可 忽略日期中的年。比如,B2单元格中存放的是出生日期(输入年月日时,用斜线或短横线隔开),在C2单元格中输入“=datedif(B2,today (),"y")”(C2单元格的格式为常规),按回车键后,C2单元格中的数值就是计算后的年龄。此函数在计算时,只有在两日期相差满12个月,才 算为一年,假如生日是2004年2月27日,今天是2005年2月28日,用此函数计算的年龄则为0岁,这样算出的年龄其实是最公平的。 =datedif(A1,today(),"y")这个公式也可以得到你要的结果。 如: 入厂日期-出生日期=实际年龄 =DATEDIF(B2,A1,"y") 3. 以9月份为界限 真实年龄=2007-出生年份+IF(月份>8,-1,0) =2007-YEAR(A1)+IF(MONTH(A1)>8,-1,0) 原理: 对于9月前出生的学生,其周岁年龄的计算可直接用当年入学的年份减去学生出生的年份。 如:一个2004年入学,某年3月出生的学生的年龄为:周岁年龄=2004-出生年份。 但如果是在8月后出生的话,其周岁年龄就应比用公式计算出的年龄小1岁。 也就是说,学生的实际年龄不仅仅与学生的出生年份有关,还与学生出生的月份有关。 那么我们可以考虑用IF函数对月份作出判断,再与公式计算得的年龄累计,从而得出真实的年龄。 在IF函数中有三个参数,利用函数中的第一个参数进行判断,将判断后的返回值放在第二、第三个参数中, 并与公式中的周岁年龄累加计算,最后得出真实年龄。 在此使用IF函数(月份>8,-1,0)与公式合成:真实年龄=2004-出生年份+IF(月份>8,-1,0)。 将其输入到第一个学生的年龄栏内,其余的只需用鼠标左键拖动此单元格右下方的填充柄,向下到最后一个学生, 使其被复制使用,从而快速、准确地计算出全校所有新生的入学年龄。 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论