文/张一知
刚进办公室,小赵就急急忙忙地跑过来说:“快帮兄弟一把!”我走到他的电脑前,看到的是一张名为“职工简况”的Excel工作表。他说:“领导让我根据表上面的‘出生年月’,快速算出截止到2004年5月31日每个人的年龄,下午就得交差。”这有何难,我胸有成竹地坐到了电脑前,立马在“出生年月”的右面插入了一列,在E3单元格里输入公式“=DATEDIF(D3,"2004-5-31","y")”,一回车,E3单元格里竟是“#VALUE!”。仔细一看,原来图1表格中“出生年月”里的数据不符合要求,程序不能识别出这是日期,因
此不能利用这些数据进行有关日期的操作。如何将它们改为程序能够识别的日期形式呢?一个一个地改,不是办法,好几百人呢!
如果“出生年月”中的数据最右面都没有小数点(如68.9.26),只需用“替换”将数据中的小数点“。”替换为“-”,程序就会识别出这些数据是日期。
数据最右面有一个小数点,即使用上面的方法替换,程序也不认为这些数据是日期,可恰恰数据里有好多是这样的。提取字符吧!需要的字符又多少不一;删除最右面一个小数点吧,一时还找不到这样的函数。“天无绝人之路”,几经摸索还真找到了一个好办法,虽然还是有些麻烦,但总比一个一个地改要好的多。思路是将数据分为年、月、日三部分(如59.10.5),每部分各占一列,然后再将这三部分用“-”,连接起来。显然我们应以小数点“。”作为分隔标志,即分隔符号。
1. 因为数据的最右面还有一个小数点,所以应在“出生年月”列的右面插入3个空白列(请见图1)。
2. 选择“出生年月”下面的所有数据,即D3:D8,单击“数据→分列→下一步”,在“分隔符号”中勾选“其他”,在其右面的空白处输入一个小数点“.”,去掉“分隔符号”中的其他所有选项。
3. 单击[下一步→完成]按钮。数据按要求分成了三列(请见图2)。
4. 选中G3单元格,输入公式“=(IF(F3>0,D3&"-"&E3&"-"&F3,D3&"-"&E3))+0”,回车后,G3单元格里是“21575”用填充柄向下拖动至G8.经过上述操作,字符串已转成数值,只不过还不是我们需要的形式。公式中“+0”,就是为了使文本型的数字转化为数值型的数字(请见图3)。
因为G列的数据是由左面单元格引用过来的,所以我们不能删除D、E、F列,要使G列的数据不受D、E、F的制约,可再做如下操作。
5. 选定G3:G8,单击“复制”,选择D3单元格,再单击菜单“编辑→选择性粘贴”,在打开的对话框的“粘贴”中选择“数值”,然后单击[确定]按钮。
6. 选中D3:D8,单击菜单“格式→单元格”,在打开的“单元格格式”对话框中,单击“数字”标签,在“分类”中选择“日期”,在右面的“分类”中选择上级要求的或是您喜欢的日期格式,删除不需要的E、F、G列,就大功告成了(请见图4)。按照本文开头的方法输入“DATEDIF”函数,任务就完成了。