|
请帮忙解释下这个公式是什么意思?为什么不能按从小到大的排列?详细见附件,谢谢了{=OFFSET($A$3,SMALL(IF(--TEXT(NOW()-$B$4:$B$10,"Y")>50,ROW($1:$7)),ROW(A1)),)}
gouweicao78答复:1、B4:B10是日期,NOW()-B4:B40得到的是天数加当天的小时数,怎么能用TEXT(天数差,"Y")来得到年份呢?您要的是年龄,而非年份,应改用DATEDIF。而且,年龄只要比50多1天——即满50周岁,用>50则表示至少要满51周岁,应改为>=50,因此公式:
- =OFFSET($A$3,SMALL(IF(DATEDIF($B$4:$B$10,NOW(),"Y")>=50,ROW($1:$7)),ROW(A1)),)
复制代码
2、公式改为- :=INDEX(A:A,SMALL(IF(DATEDIF(B$4:B$10,NOW(),"Y")>=50,ROW($4:$10),4^8),ROW(1:1)))&""
复制代码 可自动屏蔽错误。
3、上面公式只是将满足>=50岁的人员列出来,没有写按年龄大小排序的条件,下面公式按照出生日期排序:
- =INDEX(A:A,RIGHT(SMALL($B$4:$B$10*10^5+IF(DATEDIF(B$4:B$10,NOW(),"Y")>=50,ROW($4:$10),4^8),ROW(1:1)),5))&""
复制代码
具体解释,可参照本帖第28楼多个关键字排序技术等。
[ 本帖最后由 gouweicao78 于 2009-6-4 11:00 编辑 ] |
|