excel中,如果a1是入学日期,a2中怎样显示学生的班级.
A2列中填写2010年12入学,B2列中自动判别学生班级是"高二"
以此类推,只想学习方法,谢谢各位! 展开
对于这个问题,我们不妨假设是在知道年份的情况下自动判断是高几的学生,这样问题
就比较清晰了,于是我们应该怎样根据A1列的日期判断是高几的学生呢,显然我们是按
照这样一种思维模式去推理的,如果现在的日期的年份和A1列某一行的日期年份相同,
这是高一学生,如果现在日期的年份正好比A1列某一行的日期年份大一年,这是高二学生
,而如果现在日期的年份比A1列某一行的日期年份大了两年以上(包括复读的学生),
这是高三学生。显然我们需要知道现在的日期是多少,计算现在的日期函数是today(),那么
日期知道了,就得计算到底现在的年份和A1列的入学年份相差多少年,可A1列里面的数据是
由日期文本和普通文本构成的,那么就得提取出我们所需要的日期文本,观察知道A1列数据的
后面都是“入学”二字,那么怎样利用这个来提取文本呢,我们很快想到用文本函数,先是查找后
是提取,查找有四个函数,期中常用的是find(find-text,within-text,star-num),我们不妨用这个
来查找文本,查找到之后就是提取文本了,由于日期是在前面,所以我们用从左往右提取的文本
函数left(text,num-chars),故而提取日期的函数是这样的left(A1,find("入学",A1)-1),那么接下来就是
计算相差的年份了,那么怎么知道年份呢,可以用日期函数year(date-value),那么A1列的年份是
:year(left(A1,find("入学",A1)-1)),现在的年份是:year(today()),两者相差的年数为:year(today())-year(left(A1,find("入学",A1)-1)),接着,我们根据相差的年数来看看到底是高几,
在此易知年数是条件,由不同的条件来进行不同的计算可以用if函数,if 的用法如下(当然还可以使用除if外的其他函数),于是最终的结果为:=IF(YEAR(TODAY())-YEAR(LEFT(A1,FIND("入学",A1)-1))=0,"高一",IF(YEAR(TODAY())-YEAR(LEFT(A1,FIND("入学",A1)-1))=1,"高二","高三")),附有截图:
当然还有一些其他的方法,比如:=choose(sum(n(YEAR(TODAY())-YEAR(LEFT(A1,FIND("入学",A1)-1))>={0,1,2})),"高一","高二","高三")
估计还有不少的方法,但是都只是excel里面的函数应用的一个方面而已.
当然还有一些其他的方法,比如:=choose(sum(n(YEAR(TODAY())-YEAR(LEFT(A1,FIND("入学",A1)-1))>={0,1,2})),"高一","高二","高三")
估计还有不少的方法,但是都只是excel里面的函数应用的一个方面而已.
上面那位先生说的很对,只是要注意一个问题:today()函数会随时间变动,今年可以,明年就不对了。所以得出正确结果后,要复制该单元格内容,以数字形式粘贴到该单元格。