Excel 2016 年根据排名更改评分标准

Excel 2016 Change grading criteria based on rank

编辑:我认为这个问题现在已经解决了。 你们是天才(至少对我来说 :) ) 我将 Solar Mike 的解决方案应用于我的实际 Excel 数据(这里的数据是一个简化版本)并且有效! 非常感谢,我送你一些虚拟啤酒!

请帮我想出以下情况的评分公式。 我有以下简化情况:

我 class 中的所有学生都被预先分配了 3 个等级之一:A、B、C。

所有 3 个排名都有不同的评分标准:

A 级:

90 岁及以上:X

80 到 89: Y

79 及以下:Z

B 级:

80 岁及以上:X

70 到 79: Y

69 岁及以下:Z

等级C:

70 岁及以上:X

60 到 69: Y

59 及以下:Z

所以当我在 Excel 中输入学生的分数时,我想根据他们的排名获得他们的成绩(X、Y 或 Z)。 请查看随附的屏幕截图。我想根据B列和C列的值得到学生在D列的成绩(D列的当前值是手动输入的。请帮我做一个公式来自动获取它们)。 标准在单元格 B6:D15.

请帮忙!

这可以通过 index() 和 match() 来完成,看看这个:

单元格D3中的公式被拖下是:

IF(C3="","",INDEX($I:$K,MATCH(C3,$H:$H,1),MATCH(B3,$I:$K,0)))

if()是在分数为空时放空

D2中输入:

=MID("ZYX",MATCH(C2,CHOOSE(CODE(B2)-64,{1,80,90},{1,70,80},{1,60,70})),1)

在这种情况下不需要查找-table。如果需要,更改数组中的范围。澄清一下:

  • =MID("ZYX",<Step2>, 1) - 从 ZYXMID.
  • 的长度为 1 的子串
  • MATCH(C2,<Step3>) - Return 元素在数组中的位置,即 >=C2.
  • CHOOSE(CODE(B2)-64,{1,80,90},{1,70,80},{1,60,70}) - Returns 根据 B2.
  • 在第 2 步中选择合适的数组

逐步完成公式评估以查看它是如何一步步完成的。


注意: 如果您不确定是否可以同时使用小写和大写,那么只需包含一个 UPPER(B2) B2 参考。

根据 OP 的布局,尝试使用 IMAGINARY 中的函数。

D2中,公式复制下来:

=INDEX({"X";"Y";"Z"},MATCH(C2,INDEX(-IMAGINARY(OFFSET($C,MATCH(B2,B:B,0),0,3)&"i"),0),-1))