在excle表格上,如何根据人员的年龄计算年龄段的比例
篇一:excle中以身份证算年龄的
大全
【身份证信息提取】
从身份证号码中提取出生年月日
=TEXT(MID(A1,7,6+(LEN(A1)=18)*2),#-00-00)+0
=TEXT(MID(A1,7,6+(LEN(A1)=18)*2),#-00-00)*1
=IF(A2<,TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),#-00-00)+0,) 显示格式均为yyyy-m-d。(最简
单的公式,把单元格设置为日期格式)
=IF(LEN(A2)=15,19&MID(A2,7,2)&-&MID(A2,9,2)&-&MID(A2,11,2),MID(A2,7,4)&-&MID(A2,11,2)&-&MID(A2,13,2))
显示格式为yyyy-mm-dd。(如果
为“1995/03/29”格式
的话,将”-” 换成”/”即可)
1
=IF(D4=,,IF(LEN(D4)=15,TEXT((19&MID(D4,7,6)),0000年00月00日
),IF(LEN(D4)=18,TEXT(MID(D4,7,8),0000年00月00
日))))
显示格式为yyyy年mm月dd日。(如果将公式中“0000
年00月00日”改成“0000-00-00”,则显示格式为
yyyy-mm-dd)
=IF(LEN(A1:A2)=18,MID(A1:A2,7,8),19&MID(A1:A2,7,6))
显示格式为yyyymmdd。
=TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),#-00-00)+0
=IF(LEN(A2)=18,MID(A2,7,4)&-MID(A2,11,2),19&MID(A2,7,2)&-MID(A2,9,2))
=MID(A1,7,4)&年&MID(A1,11,2)&月
&MID(A1,13,2)&日
=IF(A1<,TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),#-00-00)) 从身份证号码中提取出性别
2
=IF(MOD(MID(A1,15,3),2),男,女)(最简单公式)
=IF(MOD(RIGHT(LEFT(A1,17)),2),男,女)
=IF(A2<” ”,IF(MOD(RIGHT(LEFT(A2,17)),2),”男”,”
女”),)
=IF(VALUE(LEN(ROUND(RIGHT(A1,1)/2,2)))=1,男,女)
从身份证号码中进行年龄判断
=IF(A3<””,DATEDIF(TEXT((LEN(A3)=15*19&MI
D(A3,7,6+(LEN(A3)=18*2),”#-00-00”),TODAY(),”Y”),)
=DATEDIF(A1,TODAY(),“Y”)
(以上公式会判断是否已过生日而自动增减一岁)
=YEAR(NOW())-MID(E2,IF(LEN(E2)=18,9,7),2)-1900
=YEAR(TODAY())-IF(LEN(A1)=15,19&MID(A1,7,2),MID(A1,7,4))
=YEAR(TODAY())-VALUE(MID(B1,7,4))&岁
=YEAR(TODAY())-IF(MID(B1,18,1)=,CONCATENATE(19,MID(B1,7,2)),MID(B1,7,4)) 按身份证号号码计算至今天年
龄
=DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(L
3
EN(A1)=18)*2),#-00-00),TODAY(),y)
以2006年10月31日为基准日,按按身份证计算年龄(周岁)
的公式
=DATEDIF(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),#-00-00)*1,2006-10-31,y)
按身份证号分男女年龄段
按身份证号分男女年龄段,身份证号在K列,年龄段在J
列(身份证号为18位) 男性16周岁以下为1
男性16周岁(含16周岁)以上至50周岁为 2
男性50周岁(含50周岁)以上至60周岁为 3
男性60周岁(含60周岁)以上为4
女性16周岁以下为1
女性16周岁(含16周岁)以上至45周岁为 2
女性45周岁(含45周岁)以上至55周岁为 3
女性55周岁(含55周岁)以上为4
=MATCH(DATEDIF(DATE(MID(K1,7,4),MID(K1,11,2),MID(K1,13,2)),TODAY(),y),{0,16,50,60}-{0,0,5,5}*ISEVEN(MID(K1,17,1)))
=SUM(--(DATEDIF(MID(K1,7,4)&/&MID(K1,11,
4
2)&/&MID(K1,13,2),TODAY(),y)={0,16,45,55}+{0
,0,5,5}*MOD(MID(K1,17,1),2)))
篇二:EXCLE中最精确的计算年龄的公式--指定日期
EXCLE中最精确的计算年龄的公式
中午一个同事请教我有关EXCLE自动计算年龄的方法,当时告诉她应该有一堆公式但是一时没有谁能记得清楚,答应他回来以后上网查查。
到网上一搜,大失所望。几乎没有一种方法是精确的。
网上搜到的共式大概有这么几种:
1、计算出生日期到某一指定日期(一般选用某年的最后一天入2006年12月31日)的的天数,然后除以360 ,得到一个数值,然后用 int()函数取整,得出需要的年龄。一般使用的公式如下:
=IF(C12=,,INT(DAYS360(C12,2006-12-31)/360))
聪明一点的人知道使用这个公式,
=IF(C12=,,INT(DAYS360(C12,TODAY())/360))
这个方法,这个公式的弊端在于,一、将每个月默认为30天去计算两个日期之间的天数,
二、将每年默认为360天去计算年龄。这种方法显然不精确。
2、年份直接相减
计算周岁
5
=YEAR(NOW())-YEAR(C12)
计算虚岁
=YEAR(NOW())-YEAR(C12)+1
这种算法的精确程度显而易见,粗略估算还算可以。
3、使用DATEDIF函数
这种方法与第一种方法采用了相同的思路,但是其的精确程度显然比第一种方法要高,这取决于DATEDIF函数本身的精确性。
=IF(C12=,,INT(DATEDIF(C12,1983-3-20,D)/365))
或者,
=IF(C12=,,INT(DATEDIF(C12,now(),D)/365))
但是这种方法强行将一年固定为365天,我们知道通常情况每个四年就有一年是366天所以这种算法也不是很精确。
通过认真分析,我觉得只有结合我们计算年龄的实际方法,才能编制出准确无误的公式。 首先分析人们计算年龄的方法。
例如笔者系1983年3月20日生人,如果要在2007年3月23日这天计算他的年龄,通常采用这样的方法。
首先,人们会用2007减去1983得出的年龄为24岁,然后再看看他“满没满”24岁,就是看看出生的月份和日期比今天早还是晚,如果出生日期晚于今天则表示没有满,那么他的年龄就应该是2007-1983-1=23岁。如果出生日期早于今天
6
或者就是今天,就说明他已经满了24岁或者正好满24岁,
则他的年龄就是2007-1983=24岁。
分析清楚了计算年龄的过程我们再根据这个过程编写公
式就很容易了。
综上,我编写了如下公式,在实际应用中将公式中所有的
C12替换为,你的所使用的出生日期所在的表格行号列号组
合即可。如(A1,B2等等)
=IF(MONTH(NOW())<MONTH(C12),INT(YEAR(NOW())-YEAR(C12))-1,IF(MONTH(NOW())MONTH(C12),YEAR(NOW())-YEAR(C12),IF(DAY(NOW())=DAY(C
12),YEAR(NOW())-YEAR(C12),YEAR(NOW())-YEAR(C12)-1)))
公式说明
=IF ( MONTH(NOW())<MONTH(C12) , INT(YEAR(NOW())-YEAR(C12))-1 , //如果当前日期的月份
小于所需计算日期的月份,则表示今年没有过生日,年龄数
为YEAR(NOW())-YEAR(C12)-1,如果不是这种情况,进入
下面的判断
IF ( MONTH (NOW())MONTH(C12) , YEAR(NOW())-YEAR(C12) ,
7
//如果当前日期的月份大于所需计算日期的月份,则表示今年已经过生日,年龄数为
YEAR(NOW())-YEAR(C12),如果也不是这种情况,则表示这两个月份相等,进入下面的判断过程去判断,日期的情况。
IF ( DAY(NOW())=DAY(C12) , YEAR(NOW())-YEAR(C12) ,
//如果今天的日期大于或者等于出生年月日中的日期,则表示已经过了生日,或者正在过生日,则年龄数为YEAR(NOW())-YEAR(C12),否则表示今年没有过生日,年龄数应该选择下面的公式,大小为
YEAR(NOW())-YEAR(C12)-1
YEAR(NOW())-YEAR(C12)-1 )
)
参考知识:
IF 请参阅
执行真假值判断,根据逻辑计算的真假值,返回不同结果。
可以使用函数 IF 对数值和公式进行条件检测。
语法
IF(logical_test,value_if_true,value_if_false)
Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。例如,A10=100 就是一个逻辑表达式,如果单
8
元格 A10 中的值等于 100,表达式即为 TRUE,否则为 FALSE。本参数可使用任何比较运算符。
Value_if_true logical_test 为 TRUE 时返回的值。例如,如果本参数为文本字符串“预算内”而且 logical_test 参数值为 TRUE,则 IF 函数将显示文本“预算内”。如果 logical_test 为 TRUE 而 value_if_true 为空,则本参数返回 0(零)。如果要显示 TRUE,则请为本参数使用逻辑值 TRUE。Value_if_true 也可以是其他公式。
Value_if_false logical_test 为 FALSE 时返回的值。例如,如果本参数为文本字符串“超出预算”而且 logical_test 参数值为 FALSE,则 IF 函数将显示文本“超出预算”。如果 logical_test 为 FALSE 且忽略了 Value_if_false(即 value_if_true 后没有逗号),则会返回逻辑值 FALSE。如果 logical_test 为 FALSE 且 Value_if_false 为空(即 va
lue_if_true 后有逗号,并紧跟着右括号),则本参数返回 0(零)。Value_if_false 也可以是其他公式。
说明
? 函数 IF 可以嵌套七层,用 value_if_false 及 value_if_true 参数可以构造复杂
的检测条件。请参阅下面最后一个示例。
?
?
9
? 在计算参数 value_if_true 和 value_if_false 后,函数 IF 返回相应语句执行后的返回值。 如果函数 IF 的参数包含,则在执行 IF 语句时,数组中的每一个元素都将计算。 Microsoft Excel 还提供了其他一些函数,可依据条件来分析数据。例如,如果要
计算单元格区域中某个文本字符串或数字出现的次数,则可使用 COUNTIF 工作表函数。如果要根据单元格区域中的某一文本字符串或数字求和,则可使用 SUMIF 工作表函数。请了解关于根据条件计算值。
DATEDIF
参阅: 计算两个日期之间的天数、月数或年数。提供此函数是为了
与Lotus1-2-3兼容。
语法: DATEDIF(start_date,end_date,unit)
Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如2001/1/30)、系列数(例如,如果使用1900日期系统则36921代表2001年1月30日)或其他公式或函数的结果(例如,DATEVALUE(2001/1/30))。有关日期系列数的详细信息,请参阅NOW。
End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
10
Unit 为所需信息的返回类型。
Unit返回
Y时间段中的整年数。
M时间段中的整月数。
D时间段中的天数。
MDstart_date与end_date日期中天数的差。忽略日期中的月和年。 YMstart_date与end_date日期中月数的差。忽略日期中的日和年。 YDstart_date与end_date日期中天数的差。忽略日期中的年。 说明:
MicrosoftExcel按顺序的系列数保存日期,这样就可以对其进行计算。如果工作簿使用1900日期系统,则Excel会将1900年1月1日保存为系列数1。而如果工作簿使用1904日期系统,则Excel会
将1904年1月1日保存为系列数0,(而
将1904年1月2日保存为系列数1)。例如,在1900日期系统中Excel将1998年1月1日保存为系列数35796,因为该日期距离1900年1月1日为35795天。请查阅MicrosoftExcel如何存储日期和时间。
ExcelforWindows和ExcelforMacintosh使用不同的默认日期系统。有关详细信息,请参阅NOW。
示例:
DATEDIF(2001/1/1,2003/1/1,Y)等于2,即时间段中有两个
11
整年。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天,忽略日期中的年。
篇三:Excel如何根据身份证号码自动计算年龄
Excel如何根据身份证号码自动计算年龄
一、在实际生活中,往往要根据身份证号码自动计算年龄,在Excel中,采用Excel2003YEAR函数获得当前年份,采用Excel2003MID函数取得身份证号码的出生年份,可快速地根据身份证号码自动计算年龄。
如上图所示,在B2单元格输入身份证号码,在C2单元格输入:
=YEAR(NOW())-IF(LEN(B2)=15,19&MID(B2,7,2),MI
D(B2,7,4))
C2单元格根据身份证号码自动计算年龄“31”。
二、在实际生活中,往往要根据身份证号码自动生成生肖属相,在Excel中,首先采用Excel2003LEN函数判断身份证号码的位数是15位还是18位,然后采用MID和MOD函数可快速地根据身份证号码自动生成生肖属相。
如上图所示,在B5单元格输入身份证号码,在C5单元
12
格输入:
=IF(LEN(B5)=15,MID(鼠牛虎兔龙蛇马羊猴鸡狗猪
,MOD(19&MID(B5,7,2)-4,12)+1,1),MID(鼠牛虎兔龙蛇马羊猴鸡狗猪,MOD(MID(B5,7,4)-4,12)+1,1))
C5单元格根据身份证号码自动生成生肖属相“猴”。
excel表格怎样根据出生日期推算年龄,
19631125
19750328
19591206
19800711
由于你的这些数字不是日期格式,所以要先转成日期格式才能算出年龄 用我这个公式就可以算出来,假如值在A1
=DATEDIF(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
,TODAY(),y)
13