分数分班排列
问题:一列姓名一列分数,按班级分成六列,成绩升序排列。
函数公式解决:
{=INDEX(E:E,MOD(SMALL(IF(ISNUMBER(MATCH($E$2:$E$31,$A:$A,)),$F$2:$F$31*100+ROW($2:$31),9999),ROW(A1)),100))&""}
公式先用Match判断E列的每个值在A列是否存在,如存在返回数值,否则返回错误值
再用Isnumber判断其是否为数值,是为TRUE,否为FALSE
以此作为IF函数的第一参数,结果为TRUE的返回分数*100+行数,否则返回一个较大的数,此处用9999
用SMALL函数对以上结果进行从小到大的排列
用MOD函数去掉分数部分,剩余行号部分
用INDEX引用E列对应的行号获得结果