Задание 9: Обработка числовой информации в электронных таблицах
1. Общая информация о задании
- Уровень сложности: базовый
- Максимальный балл: 1
- Примерное время выполнения: около 6 минут
- Проверяемый навык: умение обрабатывать числовую информацию в электронных таблицах
- Формат на экзамене: файл
.ods(LibreOffice Calc / OpenOffice Calc). Microsoft Excel не используется.
В задании требуется использовать сложные формулы для проверки условий в строках, подсчёта и анализа данных. Ответом может быть число (часто просят только целую часть) или пара чисел.
Задания: N9.Таблицы | N9.Таблицы++
2. Все формулы для Excel / LibreOffice Calc
Ниже приведены функции, которые используются в задании 9. В LibreOffice Calc в качестве разделителя аргументов используется точка с запятой (;). В русской версии Excel также точка с запятой (;) при настройке по умолчанию.
2.1. Сумма, количество, среднее, минимум, максимум
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
| СУММ | =СУММ(число1; [число2]; …) или =СУММ(диапазон) | Сумма всех чисел в диапазоне или списке | =СУММ(A1:A10) |
| СЧЁТ | =СЧЁТ(значение1; [значение2]; …) | Количество непустых ячеек с числовыми значениями | =СЧЁТ(B2:B100) |
| СРЗНАЧ | =СРЗНАЧ(число1; [число2]; …) | Среднее арифметическое (пустые и текст не учитываются) | =СРЗНАЧ(A2:A50) |
| МАКС | =МАКС(число1; [число2]; …) | Наибольшее значение | =МАКС(C2:Y92) |
| МИН | =МИН(число1; [число2]; …) | Наименьшее значение | =МИН(C2:Y92) |
2.2. Условные функции (одно условие)
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
| ЕСЛИ | =ЕСЛИ(условие; значение_если_истина; значение_если_ложь) | Проверка одного условия | =ЕСЛИ(A2>5; "Да"; "Нет") |
| СЧЁТЕСЛИ | =СЧЁТЕСЛИ(диапазон; условие) | Количество ячеек, удовлетворяющих условию | =СЧЁТЕСЛИ(B2:Y92;">25") |
| СУММЕСЛИ | =СУММЕСЛИ(диапазон; условие; [диапазон_суммирования]) | Сумма ячеек, где в первом диапазоне выполняется условие | =СУММЕСЛИ(A1:A10;">0"; B1:B10) |
| СРЗНАЧЕСЛИ | =СРЗНАЧЕСЛИ(диапазон; условие; [диапазон_усреднения]) | Среднее по ячейкам, удовлетворяющим условию | =СРЗНАЧЕСЛИ(A1:A500;"<0") |
| МАКСЕСЛИ | =МАКСЕСЛИ(диапазон_проверки; условие; [диапазон_максимума]) | Максимум среди ячеек, удовлетворяющих условию | =МАКСЕСЛИ(A1:AN500; A1:AN500;">0") |
| МИНЕСЛИ | =МИНЕСЛИ(диапазон_проверки; условие; [диапазон_минимума]) | Минимум среди ячеек, удовлетворяющих условию | =МИНЕСЛИ(A1:A100; A1:A100;">10") |
Условие в кавычках задаётся как строка: ">25", "<0", "=яблоки". Для подстановки значения из ячейки используют конкатенацию: ">="&E2*0,9.
2.3. Несколько условий
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
| СЧЁТЕСЛИМН | =СЧЁТЕСЛИМН(диапазон_условия1; условие1; [диапазон_условия2; условие2]; …) | Подсчёт строк, удовлетворяющих всем условиям | =СЧЁТЕСЛИМН(A:A;">5"; B:B;"<10") |
| СУММЕСЛИМН | =СУММЕСЛИМН(диапазон_суммы; диапазон1; условие1; [диапазон2; условие2]; …) | Сумма по строкам, где выполнены все условия | =СУММЕСЛИМН(C:C; A:A;">0"; B:B;"Да") |
| ЕСЛИМН | =ЕСЛИМН(выражение1; результат1; [выражение2; результат2]; …) | Первый результат, для которого выражение истинно | =ЕСЛИМН(A1>90;"А"; A1>70;"Б"; "В") |
2.4. Логические функции
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
| И | =И(условие1; [условие2]; …) | Истина, если все условия истинны | =И(A2>0; B2<100) |
| ИЛИ | =ИЛИ(условие1; [условие2]; …) | Истина, если хотя бы одно условие истинно | =ИЛИ(A2=1; A2=2) |
| НЕ | =НЕ(логическое_значение) | Отрицание | =НЕ(A2="") |
Их часто используют внутри ЕСЛИ: =ЕСЛИ(И(A2>5; B2<10); "Да"; "Нет").
2.5. Математические и округление
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
| ЦЕЛОЕ | =ЦЕЛОЕ(число) | Целая часть числа (округление вниз по модулю) | =ЦЕЛОЕ(14,8) → 14 |
| ОКРУГЛ | =ОКРУГЛ(число; число_разрядов) | Округление до указанного количества знаков | =ОКРУГЛ(3,14159; 2) → 3,14 |
| ОКРУГЛВВЕРХ | =ОКРУГЛВВЕРХ(число; число_разрядов) | Округление вверх | =ОКРУГЛВВЕРХ(2,1; 0) → 3 |
| ОКРУГЛВНИЗ | =ОКРУГЛВНИЗ(число; число_разрядов) | Округление вниз | =ОКРУГЛВНИЗ(2,9; 0) → 2 |
| МОДА | =МОДА(диапазон) или =МОДА(число1; число2; …) | Наиболее часто встречающееся значение | =МОДА(B2:Y92) |
В ответе часто просят «только целую часть»: для этого подходит ЦЕЛОЕ (не округлять, а отбросить дробную часть).
2.6. Уникальные значения (УНИК)
Функция УНИК (Excel 365, LibreOffice Calc 24.2+) возвращает список уникальных значений из диапазона.
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
| УНИК | =УНИК(диапазон; [по_столбцу]; [только_один_раз]) | Уникальные значения. Третий аргумент 1: только значения, встречающиеся ровно один раз | =СЧЁТ(УНИК(A1:G1;1))=5 |
Используется в задачах на проверку «ровно N различных чисел» или «ровно M значений встречаются один раз». В паре с СЧЁТЕСЛИ можно считать повторения и выделять повторяющиеся/неповторяющиеся числа.
2.7. Поиск и подстановка (для связей между данными)
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
| ВПР | =ВПР(искомое_значение; таблица; номер_столбца; [0 или 1]) | Поиск по первому столбцу диапазона, возврат значения из указанного столбца. 0 (или ЛОЖЬ): точное совпадение | =ВПР(A2; $F$1:$H$100; 3; 0) |
| ГПР | =ГПР(искомое_значение; таблица; номер_строки; [0 или 1]) | Поиск по первой строке диапазона, возврат значения из указанной строки | =ГПР(B1; A1:Z2; 2; 0) |
2.8. Операторы сравнения и арифметики в формулах
| Оператор | Значение |
|---|---|
| = | Равно |
| > | Больше |
| < | Меньше |
| >= | Больше или равно |
| <= | Меньше или равно |
| <> | Не равно |
| + | Сложение |
| - | Вычитание |
| * | Умножение |
| / | Деление |
| ^ | Возведение в степень |
| & | Сцепление текста (например, ">="&A1) |
3. Типы ссылок на ячейки
При копировании и протягивании формул поведение ссылок разное.
| Тип | Запись | Поведение при копировании |
|---|---|---|
| Относительная | A2, B5 | Столбец и строка меняются: при копировании вниз строка увеличивается, вправо: столбец. |
| Абсолютная | $A$2, $B$5 | Не меняются ни столбец, ни строка. |
| Смешанная | $A2 (столбец A фиксирован), A$2 (строка 2 фиксирована) | Меняется только часть без $. |
Пример: чтобы при копировании формулы по строке диапазон «не съезжал», его задают абсолютно: =ЕСЛИ(МАКС($B$18:$AI$18)=B18; B1; "").
4. Алгоритм решения задания 9
- Внимательно прочитать условие: что нужно найти (разность макс и среднего, количество по условию, сумму по условию, номер строки с макс/мин и т.д.).
- Определить диапазоны данных (столбцы и строки), к которым применяются условия.
- Выбрать подходящие функции:
- разность макс и среднего → МАКС, СРЗНАЧ, затем вычитание;
- количество ячеек по условию → СЧЁТЕСЛИ (или СЧЁТЕСЛИМН);
- среднее/сумма/макс/мин по условию → СРЗНАЧЕСЛИ, СУММЕСЛИ, МАКСЕСЛИ, МИНЕСЛИ;
- проверка условий по строкам → вспомогательный столбец с ЕСЛИ и И/ ИЛИ, затем СУММ или СЧЁТ.
- При необходимости ввести вспомогательные столбцы (например, 1/0 по условию «тест сдан»), затем суммировать или посчитать количество.
- Записать ответ в требуемом формате (целая часть, два числа через пробел и т.д.).
5. Типичные ошибки
- Путать относительные и абсолютные ссылки при копировании: диапазон «уезжает» и результат неверный.
- В СЧЁТЕСЛИ / СУММЕСЛИ и т.п. условие с оператором сравнения писать в кавычках:
">25", а не>25. - При необходимости подставить в условие значение из ячейки не использовать кавычки для всего выражения, а сцеплять:
">="&A1*0,9. - В ответе требовать целую часть, а записать округлённое или дробное число: нужно использовать ЦЕЛОЕ или отбросить дробную часть по условию.
- Не учесть пустые ячейки: СРЗНАЧ их не учитывает; СЧЁТ считает только ячейки с числами.
6. Краткий чек-лист
- Определить, что искать: сумму, среднее, количество, макс/мин, разность, номер строки.
- Выделить диапазоны и условия.
- Выбрать функцию (или комбинацию): СУММ / СРЗНАЧ / МАКС / МИН или СЧЁТЕСЛИ / СУММЕСЛИ / ЕСЛИМН и т.д.
- При копировании формулы проверить $ в ссылках.
- Ответ записать в нужном формате (целое число, два числа и т.д.).
7. Решение заданий с помощью кода (Python)
Часть заданий 9 можно решить программой, если данные из таблицы экспортированы в текстовый файл (по строкам, числа в строке через пробел). Ниже пример задачи 901: в каждой строке семь натуральных чисел; нужно найти наибольший номер строки, где одно число повторяется трижды, остальные четыре различны, и среднее повторяющихся больше среднего всех чисел в строке.
maxi = 0
n = 0
for i in open('901'):
n = n + 1
a = [int(x) for x in i.split()]
pov3 = [x for x in a if a.count(x) == 3]
pov1 = [x for x in a if a.count(x) == 1]
if len(pov3) == 3 and len(pov1) == 4:
if sum(pov3) / 3 > sum(a) / 7:
maxi = n
print(maxi)
Идея: перебираем строки файла, ведём номер строки n. Для каждой строки строим список a, через подсчёт вхождений выделяем числа, встречающиеся 3 раза и 1 раз. При выполнении обоих условий запоминаем номер в maxi (не использовать имя max, чтобы не перекрывать встроенную функцию). В конце выводится наибольший такой номер.
Типы ответов в задачах: количество строк (счётчик +1 при выполнении условий), наибольший номер строки (обновлять переменную при каждом совпадении), наименьший номер строки (при первом совпадении запомнить номер и выйти из цикла), сумма чисел в строке с наибольшим номером (хранить номер и сумму, обновлять при совпадении и большем номере).
8. Файлы решений и унифицированный шаблон
В папке Решение/ лежат программы для задач 901-917:
- 901.py … 917.py: решения на Python. Каждый скрипт читает файл с тем же номером (например,
open('901')), проверяет условия по строкам и выводит ответ. В конце файла указан полученный ответ. - пример.md: унифицированный шаблон: справочная таблица всех задач (число чисел в строке, тип ответа, кратко условия), общие шаблоны в трёх форматах (таблица Excel с формулами, псевдокод, Python), полный разбор задачи 905 (таблица, псевдокод, код).
По шаблону из пример.md можно оформлять решение любой задачи N9 в виде таблицы формул, псевдокода и кода.