1、摘要:本文通过一个实例讲述了在 Excel 中用公式和函数来计算 年龄的几种方法关键词:公式;函数;数据;year();today();right();value();int();datedif()中图分类号:TP317 文献标识码:B 文章编码:16726251(2007)03010603在 Excel 练习题目及日常实际中经常遇到计算年龄的问题,那么它在Excel 中如何实现的呢?我们都知道公式和函数在 Excel 的学习中是一个重点内容,并且它也是一个难点内容,学生们在学习的过程中感到不易学习下面笔者就讲述几种用公式和函数来解决计算年龄问题的方法:1 方法一我们大家都知道年龄在日常生活中
2、怎么计算,就是用现在的年份减去出生时的年份在 Excel 中有 today()函数,这个函数返回计算机当前的日期另外还有一个函数 year()用来返回一个日期中的年份这样的话那不是很简单吗?那就让我们看看在 Excel 中用公式和函数算出来的结果吧(如图 1)是不是和我们想像中的结果一样呢,估计大家都不是想要这种结果,是不是感觉风牛马不相及的感觉先让我们来看看数据在计算机中怎样存放的,在EXCEL 中日期都是以纯数值存储的,它们都是以至 1900 年 1 月 1 日的天数来存储的,如 1900 年 1 月 25 日则存储的是 25 那么上图中的年龄列中是不是刚好对应 3831432827292
3、14029,但是需要计算距离的数是多少不直观我们都知道在日期数据中前四位数字表示年份,紧挨着二位表示月份,后二位表示日期那么我们能不能用截取字符函数截取最后两位呢,让我们看看实际效果吧(如图 2)那么最后年龄这一列中的对不对呢?实际上它也是不对的,因为大家都知道在EXCEL 中对齐方式是数值右对齐而字符则左对齐,如果大家不信还可以用 type()函数测它的数据类型这时我们只需用另外一个函数 value()将刚才的数据转换一下类型就可以了(如图 3)从图中我们看到虽然年龄这一列中还是同样的内容但排列已经位于每个单元格的右方,从而验证了刚才的数值数据是右对齐2 方法二是不是感觉刚才的方法太麻烦,因
4、为函数中间的参数又是另外一个函数,并且公式比较长不易让人记忆,那么有没有简单的方法呢?答案是肯定的我们都知道一年是有 365 天组成的,而在 EXCEL 中日期又是以序列数存放,那么是不是我们能用现在日期的序列数减去另外一个日期的序列数的差再除以 365 来实现呢?那就让我们在 Excel 中试一试效果吧(如图 4)从图中我们看到年龄都带一个小数,显然是不符合实际情况,怎么办呢?这在 Excel 中很容易解决,我们只需用另外一个函数 int()取整即可解决这个问题(如图 5)3 方法三方法二虽然比方法一简单一点,但还是比较麻烦,有没有更简单的方法呢?笔者在查找相关资料后发现了一个更简单的方法,
5、它实际上是利用另外一个功能强大但不公开 的函数来计算相差的年龄月份天数等它就是 Datedif()函数,该函数除 Excel 2000 中在帮助文档有描述外,其他版本的 Excel 在帮助文档中都没有说明,并且在所有版本的函数向导中也都找不到此函数,但该函数在电子表格中确实存在据微软称,提供此函数是为了与 Lotus 1-2-3 兼容 Datedif函数虽名不见经传,但却十分好用 Datedif 能返回任意两个日期之间相差的时间,并能以年月或天数的形式表示 EXCEL 中的 Datedif 函数带有 3 个参数,其格式如下:Datedif(start_date,end_date,units),
6、其中 start_date 和end_date 参数可以是日期或者是代表日期 的变量,而 units 则是 1 到 2 个字符长度的字符串,用以说明返回日期差的形式(见表 1)好了,既然我们了解了这个函数的功能及用法后,那就让我们赶快试一下效果吧(如图 6)以上是笔者在教学实践过程中用过的几种方法,这几种方法已在Windows2000 操作系统及 Excel2002 版本上实践过在学习 Excel 的过程中只要能够静下心来,仔细思考,就能够帮助你理解书本上的理论知识,并熟练运用甚至达到融会贯通,可能会发现更多更好的解决问题的方法参考文献1 宋清龙.计算机应用基础(xp 版)M. 北京:高等教育出版社, 2004, (4).2 全国高校网络教育考试委员会办公室组编.计算机应用基础 M.北京:清华大学出版社,2005, (3).3 徐明成,王福新,等.计算机应用基础教程M. 电子工业出版 ,2006,(5).5 周进.Excel 2000 计算日期的几种方法 J.新电脑,2002,(9).