ЕГЭ по информатике · задание 9

Электронная таблица: строки с двумя условиями

В каждой строке таблицы шесть или семь чисел. Нужно найти строки, где выполнены два условия — на повторы чисел и на их суммы или средние, — и посчитать ответ. К каждому варианту есть файл .xlsx.

Полезные функции

  • СЧЁТЕСЛИ(A1:G1; A1) — сколько раз число A1 встречается в строке.
  • СУММЕСЛИ, СРЗНАЧЕСЛИ — сумма и среднее по условию.
  • И(…), ЕСЛИ(…; 1; 0), затем сумма столбца или фильтр.

Как решать

  1. Сделать столбцы-счётчики повторов для каждого числа строки.
  2. Проверить первое условие по счётчикам, второе — по суммам.
  3. Протянуть формулы на все строки и найти ответ фильтром или формулой.

Типичные ошибки

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

Разобранные варианты

Сначала реши сам в Excel, LibreOffice или на Python, потом открой разбор.

Вариант 1

сумма в последней строке

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия:
– в строке есть одно число, которое повторяется трижды, остальные три числа различны;
– среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.
В ответе запишите только число.

Файл к варианту: Ege9_v1.xlsx (2054 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 6 — первая подходящая: 21, 119, 70, 78, 119, 119. Повторяется 119, неповторяющиеся — 21, 70, 78. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 311; первая — 6, последняя — 2011 (сумма её чисел 533).

Ответ: 533

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v1.xlsx').active
ans = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 3) + [3] and sum(uni) / len(uni) <= rep[0]:
        ans = sum(row)
print(ans)

Вариант 2

количество строк

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:
– в строке есть только одно число, которое повторяется дважды, остальные пять числа различны;
– среднее арифметическое неповторяющихся чисел строки больше повторяющегося числа.
В ответе запишите только число.

Файл к варианту: Ege9_v2.xlsx (4000 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 7 — первая подходящая: 43, 37, 26, 27, 11, 11, 93. Повторяется 11, неповторяющиеся — 43, 37, 26, 27, 93. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 788; первая — 7, последняя — 4000.

Ответ: 788

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v2.xlsx').active
count = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 2) + [2] and sum(uni) / len(uni) > rep[0]:
        count += 1
print(count)

Вариант 3

количество строк

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:
– все числа в строке различны;
– удвоенная сумма максимального и минимального чисел строки не меньше суммы остальных чисел.
В ответе запишите только число.

Файл к варианту: Ege9_v3.xlsx (4000 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 40 — первая подходящая: 1, 95, 80, 24, 64, 7, 15. Все числа различны. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 517; первая — 40, последняя — 3993.

Ответ: 517

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v3.xlsx').active
count = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if len(c) == len(row) and 2 * (max(row) + min(row)) >= sum(row) - max(row) - min(row):
        count += 1
print(count)

Вариант 4

номер строки

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:
– в строке есть ровно два числа, каждое из которых повторяется дважды, остальные числа различны;
– сумма повторяющихся чисел (с учётом повторений) больше суммы неповторяющихся.
В ответе запишите только число.

Файл к варианту: Ege9_v4.xlsx (4060 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 3 — первая подходящая: 23, 23, 22, 22, 4, 80, 2. Повторяется 22, 23, неповторяющиеся — 4, 80, 2. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 830; первая — 3, последняя — 3994.

Ответ: 3994

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v4.xlsx').active
ans = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 4) + [2, 2] and sum(rep) > sum(uni):
        ans = i
print(ans)

Вариант 5

сумма в первой строке

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите сумму чисел в строке с наименьшим номером, для которой выполнены оба условия:
– в строке есть только одно число, которое повторяется дважды, остальные четыре числа различны;
– максимальное число строки не повторяется.
В ответе запишите только число.

Файл к варианту: Ege9_v5.xlsx (5000 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 18 — первая подходящая: 27, 38, 99, 5, 43, 27. Повторяется 27, неповторяющиеся — 38, 99, 5, 43. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 1544; первая — 18, последняя — 5000, сумма чисел первой строки 239.

Ответ: 239

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v5.xlsx').active
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 2) + [2] and max(row) in uni:
        print(sum(row))
        break

Вариант 6

количество строк

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:
– в строке есть одно число, которое повторяется трижды, остальные четыре числа различны;
– сумма повторяющихся чисел (с учётом повторений) больше суммы неповторяющихся.
В ответе запишите только число.

Файл к варианту: Ege9_v6.xlsx (4000 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 10 — первая подходящая: 93, 66, 42, 12, 9, 93, 93. Повторяется 93, неповторяющиеся — 66, 42, 12, 9. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 434; первая — 10, последняя — 3997.

Ответ: 434

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v6.xlsx').active
count = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 3) + [3] and sum(rep) > sum(uni):
        count += 1
print(count)

Вариант 7

сумма в последней строке

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия:
– все числа в строке различны;
– квадрат суммы максимального и минимального чисел больше суммы квадратов остальных чисел.
В ответе запишите только число.

Файл к варианту: Ege9_v7.xlsx (4761 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 16 — первая подходящая: 37, 70, 94, 68, 44, 41, 46. Все числа различны. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 609; первая — 16, последняя — 4715 (сумма её чисел 413).

Ответ: 413

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v7.xlsx').active
ans = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if len(c) == len(row) and (max(row) + min(row)) ** 2 > sum(x * x for x in row) - max(row) ** 2 - min(row) ** 2:
        ans = sum(row)
print(ans)

Вариант 8

номер строки

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:
– в строке есть только одно число, которое повторяется дважды, остальные четыре числа различны;
– среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.
В ответе запишите только число.

Файл к варианту: Ege9_v8.xlsx (3213 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 10 — первая подходящая: 114, 105, 88, 109, 26, 109. Повторяется 109, неповторяющиеся — 114, 105, 88, 26. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 567; первая — 10, последняя — 3134.

Ответ: 3134

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v8.xlsx').active
ans = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 2) + [2] and sum(uni) / len(uni) <= rep[0]:
        ans = i
print(ans)

Вариант 9

количество строк

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:
– в строке есть ровно два числа, каждое из которых повторяется дважды, остальные числа различны;
– максимальное число строки не повторяется.
В ответе запишите только число.

Файл к варианту: Ege9_v9.xlsx (4000 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 4 — первая подходящая: 29, 25, 11, 47, 25, 39, 29. Повторяется 25, 29, неповторяющиеся — 11, 47, 39. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 716; первая — 4, последняя — 3997.

Ответ: 716

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v9.xlsx').active
count = 0
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 4) + [2, 2] and max(row) in uni:
        count += 1
print(count)

Вариант 10

сумма в первой строке

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму чисел в строке с наименьшим номером, для которой выполнены оба условия:
– в строке есть одно число, которое повторяется трижды, остальные четыре числа различны;
– среднее арифметическое неповторяющихся чисел строки больше повторяющегося числа.
В ответе запишите только число.

Файл к варианту: Ege9_v10.xlsx (5000 строк; Excel или LibreOffice Calc).

Разбор

Шаг 1. Разбираем условия на примере. Строка 24 — первая подходящая: 66, 5, 63, 105, 114, 5, 5. Повторяется 5, неповторяющиеся — 66, 63, 105, 114. Обе проверки выполняются.

Шаг 2. В электронной таблице. Справа от данных добавляем вспомогательные столбцы: для каждого числа СЧЁТЕСЛИ(строка; число) — сколько раз оно встречается в своей строке. По этим счётчикам проверяем первое условие, суммы и средние считаем через СУММЕСЛИ / СРЗНАЧЕСЛИ (по счётчику = 1 или > 1), затем общее условие через И(…) и фильтр.

Шаг 3. Итог. Подходящих строк 687; первая — 24, последняя — 4995, сумма чисел первой строки 363.

Ответ: 363

Решение на Python. Положите файл варианта рядом с программой (нужна библиотека openpyxl).

from collections import Counter
from openpyxl import load_workbook

ws = load_workbook('Ege9_v10.xlsx').active
for i, row in enumerate(ws.iter_rows(values_only=True), start=1):
    row = list(row)
    c = Counter(row)                          # число -> сколько раз встречается в строке
    rep = [x for x in row if c[x] > 1]        # повторяющиеся (с повторами)
    uni = [x for x in row if c[x] == 1]       # неповторяющиеся
    if sorted(c.values()) == [1] * (len(row) - 3) + [3] and sum(uni) / len(uni) > rep[0]:
        print(sum(row))
        break

Для самостоятельного решения

Варианты 11–15 без разборов. Ответ можно проверить кнопкой.

Вариант 11

сумма в последней строке

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия:
– в строке есть только одно число, которое повторяется дважды, остальные четыре числа различны;
– сумма повторяющихся чисел (с учётом повторений) больше суммы неповторяющихся.
В ответе запишите только число.

Файл к варианту: Ege9_v11.xlsx (2413 строк; Excel или LibreOffice Calc).

Вариант 12

номер строки

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:
– все числа в строке различны;
– удвоенная сумма максимального и минимального чисел строки не меньше суммы остальных чисел.
В ответе запишите только число.

Файл к варианту: Ege9_v12.xlsx (3037 строк; Excel или LibreOffice Calc).

Вариант 13

количество строк

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:
– в строке есть одно число, которое повторяется трижды, остальные три числа различны;
– максимальное число строки не повторяется.
В ответе запишите только число.

Файл к варианту: Ege9_v13.xlsx (3000 строк; Excel или LibreOffice Calc).

Вариант 14

сумма в последней строке

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия:
– в строке есть ровно два числа, каждое из которых повторяется дважды, остальные числа различны;
– сумма повторяющихся чисел (с учётом повторений) больше суммы неповторяющихся.
В ответе запишите только число.

Файл к варианту: Ege9_v14.xlsx (3003 строк; Excel или LibreOffice Calc).

Вариант 15

количество строк

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:
– в строке есть только одно число, которое повторяется дважды, остальные четыре числа различны;
– среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.
В ответе запишите только число.

Файл к варианту: Ege9_v15.xlsx (4000 строк; Excel или LibreOffice Calc).