У меня есть, например, следующий файл Excel:
| USER ID | SCORE | TOTAL SCORE | TOTAL BONUS | NOTE |
| ------- | ----- | ----------- | ----------- | ----- |
| 18 | 10 | | | |
| 18 | 25 | | | |
| 18 | 15 | | | |
| 18 | 5 | | | bonus |
| 18 | 30 | | | |
| 24 | 2 | | | |
| 24 | 7 | | | |
| 24 | 21 | | | |
| 32 | 6 | | | |
| 32 | 9 | | | bonus |
| 32 | 18 | | | |
| 32 | 40 | | | |
Для каждого ИДЕНТИФИКАТОРА ПОЛЬЗОВАТЕЛЯ в первой строке должна быть указана общая сумма баллов, за исключением бонусов (их можно определить по столбцу ПРИМЕЧАНИЕ), и отдельно сумма бонусов (если они есть, в противном случае она будет равна 0).
Результат примера должен быть таким:
| USER ID | SCORE | TOTAL SCORE | TOTAL BONUS | NOTE |
| ------- | ----- | ----------- | ----------- | ----- |
| 18 | 10 | 80 | 5 | |
| 18 | 25 | | | |
| 18 | 15 | | | |
| 18 | 5 | | | bonus |
| 18 | 30 | | | |
| 24 | 2 | 30 | 0 | |
| 24 | 7 | | | |
| 24 | 21 | | | |
| 32 | 6 | 64 | 9 | |
| 32 | 9 | | | bonus |
| 32 | 18 | | | |
| 32 | 40 | | | |
Возможно ли автоматизировать сумму с помощью функции? Может быть, с помощью SUMIF()
?
решение1
решение2
С некоторой помощьюЭта статья:
Вам нужно будет создать несколько дополнительных столбцов. Сначала я подсчитал общий балл за студенческий билет (включая бонус), затем общий бонус, и, наконец, я вычел общий бонус из общего балла, чтобы получить желаемый результат.
- Мы вычисляем общий балл и общий бонус с помощью
SUMPRODUCT
функции:SUMPRODUCT((A2:A13=A2)*B2:B13)
Первая матрица — это идентификаторы пользователей, по которым группируются и суммируются результаты. Вторая матрица — это баллы пользователей. - Создаем строку, в которой общий бонус рассчитывается с помощью функции ЕСЛИ:
IF(F2="bonus",B2,0)
- Мы рассчитываем общий бонус, очень похожий на первую функцию:
SUMPRODUCT((A2:A13=A2)*D2:D13)
- Вычитаем общий бонус из общего балла:
C2-E2
После этого останется только вручную убрать со стола.
Также есть возможность отформатировать ячейки так, чтобы они были пустыми, если их значение равно 0 (это можно применить к столбцу «бонус»).