Я создаю для своей подруги электронную таблицу Google Sheets, которая позволит ей автоматически вычислять оценки своих учеников на основе оценок, которые она дает своим ученикам по различным проектам, экзаменам и участию.

Так, например, для домашней работы мы можем придавать разный вес различным заданиям. Допустим, это наши домашние задания и соответствующие им баллы (которые затем конвертируются в проценты):

  • HW # 1: 50
  • ГВ № 2: 50
  • ГВ № 3: 50
  • ГВ № 4: 250

Для этого я успешно использовал SUMPRODUCT, который суммирует кратные оценки каждого класса учеников и вес этой домашней работы в%. Результатом является средневзвешенное значение для каждого учащегося.

так что для HW # 1, если студент получил 90% по этому заданию, это значение будет умножено на 0,125.

Для справки, вот как формула выглядит для каждой ячейки студента:

=IF(ISBLANK(participation!D14), "---", (sumproduct(participation!D14:Z14, participation!$D$11:$Z$11)))

Где D:14:Z14 при участии - это набор оценок для различных заданий. D11:Z11 - это сбор автоматически рассчитанного процента для каждого назначения.

Где я застрял: что если я хочу освободить студента? Скажем, Боб не делал HW # 4, потому что он был болен, прямо сейчас, как только я ввожу вес для этого задания (250), эта формула приводит к падению среднего Боба, пока я не ввел оценку для HW # 4. Как пропустить умножение, если значение оценки в массиве пусто? (значение веса может быть заполнено в любом случае)

Примечание: я - Excel n00b и собрал это вместе, главным образом, проводя исследования в Интернете и копируя фрагменты и полу-фрагменты онлайн. Я ценю ваше терпение.

Снимок экрана соответствующих ячеек, на которые ссылается формула:

2 ответа2

1

Даже с вашим скриншотом я не уверен на 100%, понял ли я ваши потребности.

Я считаю, что вы ищете это:

У вас есть несколько учеников, домашние задания и баллы по тем домашним заданиям, к которым ваши ученики подружатся. Так что, если они отлично выполнят свою домашнюю работу, они получат 100% этих очков, если они вообще их не заработали, то получится 0%.

Так вот что я сделал:

И SUMPRODUCT, и AVERAGE игнорируют пустое поле. Это означает, что средний процент (строка 12) не упадет. Однако он упадет, если вы введете 0% в D10.

Обратите внимание: D2: D10 отформатированы в процентах!

Вот результат для моего примера.

Надеюсь, это поможет.

Править То, что я не очень понимаю, это то, для чего вам нужен суппродукт. Если вы заботитесь о баллах, а не только о проценте, сколько очков вы бы дали ему, если он болен? 300 очков кажутся неправильными, так как он ничего не делал ...

Я бы только пошел на процент и отбросил бы баллы за студента. И средний процент вы можете получить, используя среднюю формулу.

https://support.office.com/en-nz/article/AVERAGE-function-047bac88-d466-426c-a32b-8f33eb960cf6?ui=en-US&rs=en-NZ&ad=NZ

1

Для вашего конкретного случая ваша формула в общем листе в ячейке C10 должна быть:

=IF(SUM(participation!D14:Z14)=0,"",SUMPRODUCT(participation!D14:Z14,participation!D11:Z11)/(SUMIF(participation!D14:Z14,"<>",participation!D11:Z11)-SUMIF(participation!D14:Z14,"=E",participation!D11:Z11)))

Я возился с твоим файлом, чтобы понять вещи немного лучше. Единственная часть, которая должна вас заинтересовать, находится в ячейке общего листа C10, которая теперь должна делать то, что вы просили!

Это в основном формула вашего предыдущего примера, просто адаптированная к вашим потребностям.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .