№9 — примеры решений

Один эталонный разбор.

📐 Формулы и краткие пояснения
шпаргалка
📊 Базовые агрегаты
  • =СУММ(диапазон суммирования)
    Складывает все числа из указанного диапазона.
  • =СРЗНАЧ(диапазон усреднения)
    Среднее арифметическое — сумма всех чисел из диапазона усреднения, делённая на их количество.
  • =МАКС(диапазон)
    Возвращает наибольшее число в диапазоне.
  • =МИН(диапазон)
    Возвращает наименьшее число в диапазоне.
  • =НАИБОЛЬШИЙ(диапазон; приоритет)
    Возвращает k-е по величине число в диапазоне. Приоритет = 1 — это максимум, 2 — второе по величине число, 3 — третье и так далее.
  • =НАИМЕНЬШИЙ(диапазон; приоритет)
    Возвращает k-е по величине снизу число в диапазоне. Приоритет = 1 — это минимум, 2 — второе снизу, 3 — третье снизу и так далее.
🔍 Функции с условием
  • =СЧЁТЕСЛИ(диапазон; критерий)
    Считает, сколько раз в диапазоне встречается значение критерий. В критерий можно подставить ячейку (если это первое действие задачи и формируется диапазон с количеством повторений) или прямо число (например 3) — узнать, сколько раз встречается тройка. Помни: тройка может встретиться столько раз, чтобы их сумма была кратна 3 (3 раза = 9, 6 раз = 18 и т. д.).
  • =ЕСЛИ(условие; 1; 0)
    Проверяет условие: если истина — возвращает 1, если ложь — 0. Чаще всего применяется внутри =СУММ, чтобы посчитать количество строк, удовлетворяющих условию (каждое попадание добавляет к сумме единичку).
  • =СРЗНАЧЕСЛИ(диапазон_условия; условие; диапазон_усреднения)
    Среднее арифметическое по тем строкам диапазона усреднения, в которых соответствующая ячейка диапазона условия удовлетворяет условию.
  • =СУММЕСЛИ(диапазон_условия; условие; диапазон_суммирования)
    Сумма по тем строкам диапазона суммирования, в которых соответствующая ячейка диапазона условия удовлетворяет условию.
  • =МАКСЕСЛИ(диапазон_макс; диапазон_условия1; условие1; …)
    Максимум из диапазона поиска макс. числа только по тем строкам, где выполнились все условия. Пар «диапазон условия / условие» может быть больше одной — все они должны выполниться одновременно.
  • =МИНЕСЛИ(диапазон_мин; диапазон_условия1; условие1; …)
    Минимум из диапазона поиска мин. числа только по тем строкам, где выполнились все условия. Пар «диапазон условия / условие» может быть больше одной — все должны выполниться вместе.
🔢 Проверка чётности
  • =ЕЧЁТН(число)
    Проверка: если число чётное — возвращает ИСТИНА, иначе ЛОЖЬ.
  • =ЕНЕЧЁТН(число)
    Проверка: если число нечётное — возвращает ИСТИНА, иначе ЛОЖЬ.
  • =ОСТАТ(число; делитель)
    Возвращает остаток от деления числа на делитель. Удобно для проверки делимости на любое число.
    Например, =ОСТАТ(A1; 2) = 0 → число чётное;
    =ОСТАТ(A1; 3) = 0 → число делится на 3.
  • =ABS(число)
    Модуль числа — отбрасывает знак. Например, =ABS(-7) = 7, =ABS(4) = 4. Часто пригождается для подсчёта количества по модулю или сравнения «насколько отличаются».
Удобно комбинировать с =ЕСЛИ и =СУММ: например, посчитать чётные через сумму единиц, выданных =ЕСЛИ(ЕЧЁТН(A1); 1; 0).
Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел. Определите наименьший номер строки таблицы, для которой выполнены оба условия: - в строке все числа различны; - разность максимального и минимального чисел строки равна сумме трёх её оставшихся чисел. Также определите, сколько всего строк в файле удовлетворяют обоим этим условиям. В ответе запишите два числа через пробел: номер строки и количество таких строк.
import odf.opendocument, odf.table
doc = odf.opendocument.load('9_92.ods')
sheet = doc.spreadsheet.getElementsByType(odf.table.Table)[0]
rows = sheet.getElementsByType(odf.table.TableRow)
first, count = None, 0
for idx, row in enumerate(rows):
    cells = row.getElementsByType(odf.table.TableCell)
    vals = [int(float(c.getAttribute('value'))) for c in cells if c.getAttribute('value')]
    if len(vals) < 5: continue
    r = vals[:5]; s = sorted(r)
    if len(set(r)) == 5 and s[4]-s[0] == s[1]+s[2]+s[3]:
        count += 1
        if first is None: first = idx + 1
print(first, count)  # 1321 22
Ответ:1321 22
📚 Все задачи с разбором 1
Откройте файл электронной таблицы, содержащей в каждой строке 7 целых чисел. Определите сумму номеров строк, для которых выполнены все три условия:
  • в строке ровно одно число повторяется трижды, остальные четыре числа различны;
  • максимальное число строки не повторяется (встречается ровно один раз);
  • сумма всех чисел строки положительна.
В ответе запишите только целое число.
Решение через LibreOffice Calc / Excel:

Шаг 1. Открыть файл. Таблица содержит 20 000 строк, столбцы A–G.

Шаг 2. Добавить вспомогательный столбец H с формулой проверки всех трёх условий.
Для строки 1 формула (LibreOffice):
=ЕСЛИ(И(
СЧЁТЕСЛИ(A1:G1;МОДА(A1:G1))=3;
СЧЁТЕСЛИ(A1:G1;МОДА(A1:G1))=3;
СЧЁТЕСЛИ(A1:G1;МАКС(A1:G1))=1;
СУММ(A1:G1)>0
);СТРОКА();0)

Пояснение:
• МОДА(A1:G1) — число, которое встречается чаще всего.
• СЧЁТЕСЛИ(A1:G1;МОДА(...))=3 — проверяет, что оно повторяется ровно 3 раза.
• Чтобы убедиться, что остальные 4 числа различны: если одно трижды и 4 разных, то СЧЁТЕСЛИ(A1:G1;МОДА(...))+4 уникальных = 5 уникальных значений → СЧЁТЕСЛИ с диапазоном уникальных равен 4. Это обеспечивается автоматически: при 7 числах с одним тройным и четырьмя одиночными — ровно 5 разных значений.
• СЧЁТЕСЛИ(A1:G1;МАКС(A1:G1))=1 — максимум не повторяется.
• СУММ(A1:G1)>0 — сумма положительна.

Шаг 3. Скопировать формулу на все 20 000 строк.

Шаг 4. В свободной ячейке ввести:
=СУММ(H1:H20000)

Результат: сумма номеров строк = 6585970.

Ответ: 6585970.
Ответ:6585970