按性别年龄将成绩分级别

 问题:按性别和年龄分组将成绩分为优秀、良好和不及格,具体规则如下:

函数公式解决:

=IF(B2=11,IF(A2="男",IF(C2<160,"不及格",IF(C2<=170,"良好","优秀")),IF(C2<150,"不及格",IF(C2<=160,"良好","优秀"))),IF(A2="男",IF(C2<155,"不及格",IF(C2<=165,"良好","优秀")),IF(C2<145,"不及格",IF(C2<=155,"良好","优秀"))))

按本题规则要求,先用If判断年龄,嵌套一层If判断年龄,继续嵌套两层If判断成绩。

本题规则不统一,无法使用Vlookup或Lookup,如果更改规则如下:

可以使用以下公式: 

=VLOOKUP(C2,OFFSET(J$1:L$1,MATCH(A2&B2,I$2:I$13&H$2:H$13,),,3),3) 

Offset建构一个动态区域,从J1:L1向下偏移到符合年龄和性别的行,扩展三行,再用Lookup模糊查找找到对应的级别。

如果再增加一个序列数,公式还可以简化成以下:

=INDEX(L:L,MAXIFS(M:M,H:H,B2,I:I,A2,J:J,"<="&C2))

利用MaxIfs找到年龄和性别条件,且小于指定成绩的最大值,以此作为Index的第二参数,最终找到L列的中的指定级别。

posted @ 2023-09-10 09:33  熬肥妖  阅读(43)  评论(0编辑  收藏  举报