按性别年龄将成绩分级别
问题:按性别和年龄分组将成绩分为优秀、良好和不及格,具体规则如下:
函数公式解决:
=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列的中的指定级别。