Google表格,多个IF和带有点范围的AND语句

时间:2019-03-19 12:48:39

标签: if-statement google-sheets nested

因此,我正在使用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"))))))))

我希望有一个更简单的方法可以做到这一点,否则有人会发现我的错误。如果不可能的话,这不是世界末日,因为我只能看一下结果,但是能够弄清楚如何自动将其降低会更有趣。

3 个答案:

答案 0 :(得分:0)

this solution

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}})。

不过,可能的值组合中似乎存在一些漏洞,如果您将它们绘制出来,这些漏洞将变得显而易见:

enter image description here

编写逻辑的一种更简单的方法是对每个连续的条件采用一种“编织”模式,如下所示。这种方法使我们不必描述范围或使用AND(1<X3, X3<2)运算符,并确保没有未定义的组合。

enter image description here

这种方法可以用伪代码描述为:

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")))))))))