在excel中计算平均年龄

我有一个包含700余人信息的excel表格,出生年月是以xxxx.xx的形式表示的,如1982年1月,输入的是1982.01,在数字格式下,最后的0会被自动舍掉,如1982.10会变为1982.1,所以把这样的设成了文本格式,可以正常显示为1982.10(全部为出生年月,只到月,没有日期)。
现在领导提出要自动计算平均年龄,求详细解决过程。

第1个回答  2012-01-30
假如“xxxx.xx”都在A列且从A1开始,
B1=DATE(VALUE(LEFT(A1,4)),VALUE(RIGHT(A1,LEN(A1)-FIND(".",A1))),1)
此公式假定他们都是1号出生的,
向下复制B1,
C1=DATEDIF(B1,TODAY(),"y")
TODAY()可以换成你指定的日期序列号或者一个包含正确日期格式的单元格引用,这个日期值要大于B1,
向下复制C1,如果TODAY()换作单元格引用要注意“$”,比如那个日期在E1,要输入E$1,
D1求平均年龄,
D1=AVERAGE(C:C)
第2个回答  2012-01-30
假如A列是姓名,B列是出生日期,则在C1输入以下的年龄计算公式:
=DATEDIF(B1,today(),"Y")
C1以下的单元格自动填充后,在C列的末端进行汇总,比如C列年龄数值到C100,则在C101输入
=sum(C1:C100)
若有明白,请及时与本人确认.
第3个回答  2012-01-30
不可以直接使用求平均值公式吗?

刚刚看到这个 :
你看行不行?

可以考虑用自定义函数
按ALT+F11进入VBA编辑界面,插入模块
写自定义函数代码
若十二进制数用0,1,2,3,4,5,6,7,8,9,A,B表示,
则函数格式格式
Function xl换十二进制(ByVal x As Long) As String
Dim s(11)
Dim ss As String, i, k As Integer
For i = 0 To 9
s(i) = i
Next i
s(10) = "A"
s(11) = "B"
ss = ""
Do While x > 0
k = x Mod 12
ss = s(k) & ss
x = Int(x / 12)
Loop
xl换十二进制 = ss
End Function

然后在excel中就可以正常使用,详细看这里 :http://zhidao.baidu.com/question/216270987.html
第4个回答  2012-01-30
比较简单的办法就是替换 . 为 -
这样子就能变为EXCEL能够识别的日期了
再用公式求出平均年龄就比较简单了 :
=DATEDIF(AVERAGE(A1:A100),TODAY(),"Y")
第5个回答  2012-01-30
假定你的生日数据都在A列。步骤如下:
(1)在B1中输入=YEAR(TODAY())-VALUE(MID(A6,1,4))
(2)将B1中公式向下复制,之后,B列得到与A列对应的年龄
(3)在C1中输入公式:=AVERAGE(B:B),即得结果。
相似回答