如何用EXCEL计算年龄,精确到月和天,并筛选

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用EXCEL计算年龄,精确到月和天,并筛选相关的知识,希望对你有一定的参考价值。

P列为出生日期,,,,if函数主要是判断出生日月等于当天日月和2月29日出生的人.
如果出生年的日月等于今天,直接年份相减+1
如果不是2月29号出生的,就用去年连接身份证的月份和日期,,可以算出整数年
剩下的天数除以365,用ini函数向下取整+1就相当于向上取整
=IF(AND(MONTH(NOW())=MONTH(P2),DAY(NOW())=DAY(P2)),YEAR(NOW())-YEAR(P2)+1,IF(AND(MONTH(P2)=2,DAY(P2)=29),(YEAR(NOW())-1-YEAR(P2))+(INT((NOW()-((YEAR(NOW())-1)&"/02/28"))/365)+1),(YEAR(NOW())-1-YEAR(P2))+(INT((NOW()-((YEAR(NOW())-1)&"/"&MONTH(P2)&"/"&DAY(P2)))/365)+1)))
可能的误差1天(除以365,有可能去年是366天),,,当然,最后这一年可以提取月份差还有模运算取余数即日期差
参考技术A 设出生日期为A1,则周岁数:
=DATEDIF(A1,TODAY(),"Y")
精确到月和天:
=DATEDIF(A1,TODAY(),"Y") & "岁" & DATEDIF(A1,TODAY(),"YM") & "月" &=DATEDIF(A1,TODAY(),"MD") & "日"
参考技术B A列是出生年月(输入时用1990-5-2这种格式)
B1=DATEDIF(A1,"2012-5-1","Y")&“岁"&DATEDIF(A1,"2012-5-1","YM")&"个月零"&DATEDIF(A1,"2012-5-1","MD")&"天"
下拉即可得到详细年龄(精确到岁、月、天)
然后选中姓名所在的列,格式——条件格式——使用公式确定要设置格式的单元格
下面的编辑栏中输入
=--MID(B1,1,FIND("岁",B1)-1)>=18
设置“格式”,将字体或填充设置为红色,确定。
这样,大于等于18岁的人的姓名将会变色。

如何用EXCEL计算年龄,精确到月和天,并筛选?

因为我们要登记选民,由于有个截止时间,所以我们要把一些人在哪天满没满18岁,甄别出来,在网上查了一下,都是根据系统时间today(系统当前时间)计算的,如果计算哪一天满没满18岁,要调电脑的系统时间,非常不便且不准确,我测试了一下公式(=(TODAY()-A1)/365),有些没满18岁的,根据这个公式,1994.8.25-1994.8.29出生的也满了18岁。

问:1、EXCEL表里,已输入一些人的出生年月,如何计算他们在2012年1月1日或2012年5月1日他们是多少岁零几个月零几天?格式应该这样或相似格式:20岁零5个月零3天。
2、由于还要筛选大于18岁的人,如何在“20岁零5个月零3天”这样的格式的人中筛选出大于18岁的人。
3、非常急呀,谢谢大家帮忙,分数不多,略表心意。

实现的方法和详细的操作步骤如下:

1、第一步,打开excel表格,为演示目的任意输入姓名和出生年份,需要在C列中输出年龄,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,在单元格C2的单元格中输入如下红框中的公式,按Enter键确认,如下图所示,然后进入下一步。

3、最后,完成上述步骤后,下拉单元格并复制格式以获取其他单元格的年龄,如下图所示。这样,以上的问题就解决了。


参考技术A

1、首先,我们打开excel表格,如图所示,任意输入姓名和出生年月做演示用,我们需要在C列输出他们的年龄。

2、如图所示,在C2单元格中输入公式:=(today()-b2)/365,按回车键。

3、然后我们下拉单元格,复制格式,得到其他人的年龄。

4、此时,我们发现年龄有小数形式,肯定是不对的,我们需要设置一下单元格格式,选中所有数据后,右键单击,选择“设置单元格格式”就可以了。

参考技术B A列是出生年月(输入时用1990-5-2这种格式)
B1=DATEDIF(A1,"2012-5-1","Y")&“岁"&DATEDIF(A1,"2012-5-1","YM")&"个月零"&DATEDIF(A1,"2012-5-1","MD")&"天"
下拉即可得到详细年龄(精确到岁、月、天)

然后选中姓名所在的列,格式——条件格式——使用公式确定要设置格式的单元格
下面的编辑栏中输入
=--MID(B1,1,FIND("岁",B1)-1)>=18
设置“格式”,将字体或填充设置为红色,确定。
这样,大于等于18岁的人的姓名将会变色。追问

复制你的公式B1=DATEDIF(A1,"2012-5-1","Y")&“岁"&DATEDIF(A1,"2012-5-1","YM")&"个月零"&DATEDIF(A1,"2012-5-1","MD")&"天" 到B1,不对,不跳出几岁几月出来,还是你的公式。我修改了你的引号,也不行

追答

=DATEDIF(A1,"2012-5-1","Y")&"岁"&DATEDIF(A1,"2012-5-1","YM")&"个月零"&DATEDIF(A1,"2012-5-1","MD")&"天"
我的公式是经过我自己验证过的,你再试试?

追问

非常感谢!输入公式后1994-5-1,1994-4-30出生的答案分别是18岁0月0天,18岁0个月零1天(这两个好理解),1994-5-2出生的17岁零11月零29天(琢摩半天,不太好理解,说明这个公式按每月30天算的,而现实中12月份,是31天的,再解释一下更好)另问:你用格式对大于等于18的人筛选,我搞了半天也没成,我直接在筛选中,用大于等于18岁0个月零0天,操作的,只是筛选出来的,要另外做个表把它复制过去,麻烦了点,你再说说筛选法

追答

不不不,这个公式绝对是按每年的实际天数计算的,2月29号都是四年一次的,不会错。

方便的话,将你的文件发到我扣扣邮件19165827,我帮你看看

本回答被提问者采纳
参考技术C 1、设B2为出生年月,C2为截止时间日期,可为2012年1月1日或2012年5月1日。
则D2为岁数的年,E2为月,F2为日,真要计这么准吗?公式:

D2 =DATEDIF(B2,C2,"y")

E2 =IF(DATE(YEAR(C2),MONTH(B2),DAY(B2))>C2,12-DATEDIF(C2,DATE(YEAR(C2),MONTH(B2),DAY(B2)),"m"),DATEDIF(DATE(YEAR(C2),MONTH(B2),DAY(B2)),C2,"m"))

F2 =IF(DATE(YEAR(C2),MONTH(C2),DAY(B2))>C2,DATEDIF(DATE(YEAR(C2),MONTH(C2)-1,DAY(B2)),C2,"d"),DATEDIF(DATE(YEAR(C2),MONTH(C2),DAY(B2)),C2,"d"))
公式下拉复制。

2、对D列进行筛选,大于18的即符合条件。

3、答案正确,对你有帮助的请采纳、加分。追问

不太符合我的要求,因为我要的是18岁6个月20天,是要在一个栏里面的,也可以写成格式为18.011岁。

追答

在G2输入公式:
=D2&"岁"&E2&"个月"&F2&"天"

下拉复制。你输入各种出生日期试试。

参考技术D 问1:设出生年月在A2单元格,则B2公式为:
=INT((TODAY()-A2)/365)&"岁零"&INT(((TODAY()-A2)/365-INT((TODAY()-A2)/365))*365/30)&"个月零"&INT((((TODAY()-A2)/365-INT((TODAY()-A2)/365))*365/30-INT(((TODAY()-A2)/365-INT((TODAY()-A2)/365))*365/30))*30)&"天"
问2:C2公式为:=IF(INT((TODAY()-A2)/365)>=18,"此人大于18周岁","此人不足18周岁")追问

今天是8月26,用你的公式输入后,但1994.8.26出生的人,得到的答案是18岁0个月零4天。1994.8.30生的人才是18岁,和我原来用的那个简单的公式,差不多。我原来用的公式就是这样的问题。如果1994.8.24出生的人,假如截止日期是8月24,那么得到答案也是18岁多点。

以上是关于如何用EXCEL计算年龄,精确到月和天,并筛选的主要内容,如果未能解决你的问题,请参考以下文章

sql中,根据身份证号码截取出了出生日期,怎么获取当前年龄,精确到月、日?

BigDecimal为啥可以精确计算

如何用excel计算出年龄?

如何用excel计算年龄,要具体到年月日

在excel中计算平均年龄

如何用身份证计算出年龄?