因此,我正在使用Google电子表格来跟踪学生在数学考试中的分数。我根据他们的观点给他们打分,最终有很多选择。我们已经对分数进行了平分,因此以下信息首先显示了他们将获得的等级,然后是他们获得的总分,然后是他们所获得的C或更高水平的分数。
E 5 pts
D 7 pts 2 c+
C 9 pts 3 c+
B 11pts 5 c+
A 13 pts 6 c+
当前,我有一个Google表格可以在我输入时计算出点数,并且有一个列以显示总分和C或更高分。
我试图使用多个IF和AND语句来执行此操作,但是它无法正常工作(我最终得到了错误的成绩)
这是我尝试的代码:
=If(W3<5,"F",IF(AND(W3>=5,X3<2),"E",If(AND(W3>=7,1<X3<3),"D",If(AND(7<W3<9,X3>=2),"D",IF(AND(W3>=9,2<X3<5),"C",IF(AND(8<W3<11,X3>=3),"C",IF(AND(W3>=11,4<X3<6),"B",IF(AND(10<W3<13,X3>=5),"B","A"))))))))
我希望有一个更简单的方法可以做到这一点,否则有人会发现我的错误。如果不可能的话,这不是世界末日,因为我只能看一下结果,但是能够弄清楚如何自动将其降低会更有趣。
答案 0 :(得分:0)
ARRAYFORMULA
变体,它将自动填充所有行的成绩。可以粘贴到第二行的任何列中
={"GRADE";
ARRAYFORMULA(IF(LEN(W3:W),
IF(W3:W<5, "F",
IF(W3:W<7, "E",
IF(X3:X<2, "E",
IF(W3:W<9, "D",
IF(X3:X<3, "D",
IF(W3:W<11, "C",
IF(X3:X<5, "C",
IF(W3:W<12, "B",
IF(X3:X<6, "B", "A"))))))))), ))}
答案 1 :(得分:0)
Google表格不喜欢带有多个运算符(例如1<X3<2
)的逻辑表达式,因此需要使用AND()
运算符(例如{{ 1}})。
不过,可能的值组合中似乎存在一些漏洞,如果您将它们绘制出来,这些漏洞将变得显而易见:
编写逻辑的一种更简单的方法是对每个连续的条件采用一种“编织”模式,如下所示。这种方法使我们不必描述范围或使用AND(1<X3, X3<2)
运算符,并确保没有未定义的组合。
这种方法可以用伪代码描述为:
AND()
此Google表格的公式为:
1: if (W3 < 5) F
2: else if (W3 < 7) E
3: else if (X3 < 2) E
4: else if (W3 < 9) D
5: else if (X3 < 3) D
6: else if (W3 < 11) C
7: else if (X3 < 5) C
8: else if (W3 < 12) B
9: else if (X3 < 6) B
10: else A
答案 2 :(得分:-1)
一种方法是重复使用AND
运算符来限制值范围。如果答案可以进一步简化,请在这篇文章中分享。
以下代码演示了如何反复使用AND
运算符来限制值范围:
=If(W3<5,"F",IF(AND(W3>=5,X3<2),"E",If(AND(W3>=7,1<X3<3),"D",If(AND(AND(6<W3,W3<9),X3>=2),"D",IF(AND(W3>=9,AND(2<X3,X3<5)),"C",IF(AND(AND(8<W3,W3<11),X3>=3),"C",IF(AND(W3>=11,AND(4<X3,X3<6)),"B",IF(AND(AND(10<W3,W3<13),X3>=5),"B",IF(AND(W3>=13,X3>=6),"A","undefined")))))))))