假设b2为生日
=datedif(B2,today(),"y")
DATEDIF函数,除Excel 2000中在帮助文档有描述外,其他版本的Excel在帮助文档中都没有说明,并且在所有版本的函数向导中也都不到此函数。但该函数在电子表格中确实存在,并且用来计算两个日期之间的天数、月数或年数很方便。微软称,提供此函数是为了与Lotus1-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岁,这样算出的年龄其实是最公平的。
对用Excel批量计算年龄的补充
1.计算学生从出生年月到统计年月(如2003年8月31日)的周岁,忽略了月份。如1996年5月和1996年10月出生的两个学生,分别是7岁和6岁,而计算的结果都是7岁。ﻫﻫ2.要求保持“出生年月”、“统计年月”单元格的“日历”属性,以方便其他数据库软件的调用,如1996年5月21日,在数据输入时要采用Excel 认可的日期格式(如1996-5-27),而不能为了计算方便输入成1996.5。ﻫﻫ我们的办法是:
1. 在Excel中打开“全校学生花名册”文件(此文件已在开学初完成,其中含全校学生的姓名(A列)、性别(B列)、出生年月(C列)等信息)。ﻫﻫ
2. 在数据库文件中新建一列(D列),并命名为“统计年月”,在D2中(第一个学生对应的单元格)输入“2003-8-31”,然后将鼠标移到此单元格的右下角,光标变成“+”后,按住[Ctrl]键(切记),此时光标会变成两个“+”,向下拖动复制单元格,快速完成每个学生“统计年月”的输入。
ﻫ 3. 再在文件中新建一列(E列),并命名为“年龄”,鼠标点击表头上的E,选中此列,单击菜单[格式]→[单元格]→[数字],选择“数值”,并将“小数位数”设为0。在E2(第一个学生对应的单元格)输入“
=(YEAR(D1)-YEAR(C1))+IF((MONTH(D1)-MONTH(C1))<0,-1,0)”就可求出该学生的年龄,其中IF语名是判断学生的出生月份是否超过8月,如超过则要用年份之差再减1。第一个学生年龄计算出来后,
将鼠标移到此单元格的右下角,光标变成“+”后,向下拖动复制单元格,快速完成每个学生“年龄”的计算。excel表格斜线
发布评论