新浪博客

在Excel中如何按某个统计日期计算周岁?

2013-03-13 22:43阅读:
比如以2006年8月31日为统计日期,如何让Excel以出生日期批量计算周岁呢?经过搜索和实践,有如下一些可试的办法:
假设表格中A列中从A2起,存放着出生日期,B列为周岁。如图
在Excel中如何按某个统计日期计算周岁?第一种方法:在B2中复制公式:=INT(('2006-8-31'-A2)/365.25)第二种方法:在B2中复制公式:=IF('2006-8-31'>=DATE('2006',MONTH(A2),DAY(A2)),2006-YEAR(A2),2006-YEAR(A2)-1)第三种方法:在B2中复制公式:=(2006-YEAR(A2))+IF((8-MONTH(G2))<0,-1,0)第四种方法:在B2中复制公式:=IF('2006-8-31'>=A2,IF(MONTH('2006-8-31')>MONTH(A2),YEAR('2006-8-31')-YEAR(A2),IF(MONTH('2006-8-31')=MONTH(A2),(IF(DAY('2006-8-31')>=DAY(A2),YEAR('2006-8-31')-YEAR(A2),YEAR('2006-8-31')-YEAR(A2)-1)),YEAR('2006-8-31')-YEAR(C7)-1)),'还没出世呢!')第五种方法:在B2中复制公式:=DATEDIF(A2,'2006-8-31','y')这个函数是Excel的一个隐藏函数,只是为了沿袭Lotus123的一个函数。语法为: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 日期中天数的差,忽略日期中的年。示例:DATEDIF('2001/1/1','2003/1/1','Y') 等于 2,即时间段中有两个整年。DATEDIF('2001/6/1','2002/8/15','D') 等于 440,即在 2001 6 1 日和 2002 8 15 日之间有 440 天。DATEDIF('2001/6/1','2002/8/15','YD') 等于 75,即在 6 1 日与 8 15 日之间有 75 天,忽略日期中的年。DATEDIF('2001/6/1','2002/8/15','MD') 等于 14,即开始日期 1 和结束日期 15 之间的差,忽略日期中的年和月。经实践,只有第五种方法没有出现错误。如图,C到F列依次用第一到第四种方法。B列用第五种方法。统计时间用2006年8月31日来做。只有B列好象没出问题。C到F列出错原因待查。 在Excel中如何按某个统计日期计算周岁?
#我de技术原创

我的更多文章

下载客户端阅读体验更佳

APP专享