根据分数将学生分配到各个班级

时间:2021-04-07 15:38:12

标签: excel excel-formula

enter image description here

<头>
姓名 标记 排名 班级
艾迪 20 6 C
汤姆 10 10 A
珍妮 30 4 A
丽娃 40 3 C
安迪 50 2 B
标记 5 11 B
莎莉 78 1 A
杰克 15 8 B
迪克 15 8 C
哈利 20 6 A
DOM 30 4 B

根据上图中的分数,预计学生将被分配到 A、B 和 C 班。 分数最高的学生进入 A。第二高的学生进入 B。第二高的学生进入 C。下一个再次进入 A,依此类推。 Excel 2013及以上版本计算Class的公式应该是什么?

3 个答案:

答案 0 :(得分:2)

  • Marks降序Rank升序对表格进行排序。
  • D2: =CHOOSE(MOD(ROWS($1:1)-1,3)+1,"A","B","C")

enter image description here

答案 1 :(得分:1)

假设您提供的图表位于单元格 A1-D11

尝试在侧面制作 2x3 图表(我使用 F2-G4 和 1...A 2...B 0...C

然后将公式放入 D1 如下:=vlookup(mod(C2,3),F2:G4, false)

如果需要,您甚至可以跳过整个 C 列,编写 =vlookup(mod(rank(A2,B:B),3),F2:G4, false)

但是如果他们的排名相同,那么您可能会遇到两个人去同一个班级的问题。

答案 2 :(得分:1)

如果您使用的是 Excel 365,则可以使用 SORTBY 功能来解决问题。

假设 Name 列位于名为 List_Name 的命名范围内,Marks 列位于名为 List_Marks 的命名范围内,您的示例数据集在 A1:D12 范围内,您想返回 D 列中的类代码。

在单元格 D2 中,输入以下任一公式并将其向下拖动:

=CHOOSE(MOD(MATCH(A2,SORTBY(List_Name,List_Marks,-1),0),3)+1,"C","A","B")

或者,您可以在单元格 D2 中使用以下内容:

=INDEX({"C";"A";"B"},MOD(MATCH(A2,SORTBY(List_Name,List_Marks,-1),0),3)+1)

Solutions

如果您不能使用 SORTBY 功能,那么 Ron Rosenfeld 提供的答案应该可以很好地完成这项工作。

如果您有任何问题,请告诉我。

相关问题