急!EXCEL高手请进:年龄排序号问题

我在表格中根据"出生年月"按年龄段排了序,现在想在这些出生年月前加上“岁数及序号”一项。
比如:在1989年8月31日至1990年9月1日出生的是年满18周岁的,依次排序为
岁数及序号 出生年月
18(1) 1989年11月
18(2) 1990年5月
……
1991年9月1日至1990年8月31日出生的是年满17周岁的,依次排序为
岁数及序号 出生年月
17(1) 1990年9月
17(2) 1991年3月
……
如此排列出0至18周岁的所有人的年龄及各年龄段的序号。
请问:能用公式实现吗?
如果是一个年龄段一个年龄段地去输入第一个后下拉就先谢过了,因为内容有上千条,我不想那样做!
因此,请帮忙找个方便、简单的公式之类的来完成,万分感谢!!

首先保证“出生年月”列(假设为B列)的数据是excel认可的日期格式,则先在辅助列(假设辅助列为M列)中算出年龄为:
=datedif(b2,"计算年龄的截止日期","Y")
然后在另一列中最终公式为:
=M2&"("&countif($m$2:m2,m2)&")"
下拉复制公式。
最后将公式区域复制粘贴为数值即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-16
如果你的出生年月是日期格式,
A2=DATEDIF($B2,DATE(2009,8,31),"y")&"("&SUM(IF(DATEDIF($B$2:$B2,DATE(2009,8,31),"y")=DATEDIF($B2,DATE(2009,8,31),"y"),1,0))&")"
按Ctrl+Shift+Enter,公式成为数组公式,显示为
{=DATEDIF($B2,DATE(2009,8,31),"y")&"("&SUM(IF(DATEDIF($B$2:$B2,DATE(2009,8,31),"y")=DATEDIF($B2,DATE(2009,8,31),"y"),1,0))&")"}
公式往下拉就可以了.

如果不是日期格式,就加一列换算吧:=DATE(LEFT(B2,4),MID(B2,6,LEN(B2)-6),1)

另,我算出来的结果跟你差1岁,比如说90年5月的到2009年8月31日,不就是19岁吗?如果你计算岁数的参考基数不是2009年8月31日,是2008年8月31日,把上面公式的
DATE(2009,8,31)改成DATE(2008,8,31)就可以了.
第2个回答  2010-03-16
redstarw的回答可以,但是需要下拉。你可以先填写一个公式后复制有公式的单元格,然后选中所有的要填写的单元格,然后点击右键,选择“选择性粘贴”,在弹出的对话框中选择“公式”,然后点击确定即可。
第3个回答  2010-03-16
已发到你邮箱~本回答被提问者采纳