Google Sheets, Multi IF, и заявления с диапазонами точек - PullRequest
1 голос
/ 19 марта 2019

Поэтому я использую электронную таблицу 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 голосов
/ 19 марта 2019

Одним из способов является многократное использование оператора 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")))))))))
0 голосов
/ 19 марта 2019

Google листам не нравятся логические выражения с более чем одним оператором (например, 1<X3<2), поэтому их нужно будет разбить на два выражения с помощью оператора AND() (например, AND(1<X3, X3<2)).

Кажется, что есть некоторые дыры в возможных комбинациях значений, которые становятся очевидными, если вы наметите их:

enter image description here

Прощеспособ написания логики заключался бы в использовании своего рода «ткацкого» шаблона для каждого последующего условия, как показано ниже.Этот подход позволяет избежать необходимости описывать диапазоны или использовать операторы AND() и гарантирует отсутствие неопределенных комбинаций.

enter image description here

Этот подход можетбыть описанным в псевдокоде как:

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

Формула Google Sheets для этого будет:

=IF(W3<5,"F",IF(W3<7,"E",IF(X3<2,"E",IF(W3<9,"D",IF(X3<3,"D",IF(W3<11,"C",IF(X3<5,"C",IF(W3<12,"B",IF(X3<6,"B","A")))))))))
0 голосов
/ 19 марта 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...