Теория
Что нужно знать
Задание 3 — это запрос к базе данных из двух-трёх связанных таблиц. В файле лежит книга Excel: таблица фактов (движение товаров, оказанные услуги, продажи) и справочники (товар, магазин, клиент). Нужно найти сумму, количество, процент или экстремум по набору условий. В 2027 году формат не менялся: раздел «Информационные технологии», 1 первичный балл, ответ — целое число.
Таблица, запись и поле
Реляционная база данных — это набор таблиц. Каждая таблица описывает один тип объектов, а связи между таблицами задаются значениями ключей, а не стрелками на рисунке.
- Строка таблицы — запись (кортеж), столбец — поле (атрибут).
- Первичный ключ уникален и не может быть пустым; он отличает одну запись от другой.
- В таблице фактов ключ часто составной — например, пара «дата + магазин»; ID операции при этом может быть отдельным первичным ключом.
- NULL — это отсутствие значения; NULL не равен нулю и не равен пустой строке.
- Тип поля определяет допустимые операции: с числом можно считать, с датой — сравнивать.
- В Excel заголовок таблицы занимает отдельную строку, данные начинаются со следующей.
- Имя листа — часть адреса диапазона; при копировании формул его нужно фиксировать.
Ключи и связи
Справочник хранит уникальные объекты, таблица фактов — события. Связь между ними устанавливает внешний ключ: он хранит значение первичного ключа из другой таблицы.
- Связь «один ко многим»: одной строке справочника соответствует много строк фактов.
- Связь «многие ко многим» реализуется через промежуточную таблицу.
- Связь не создаёт новых данных — она объясняет, как соединять уже существующие.
- Внешний ключ может повторяться: у одного магазина много операций.
- Значение внешнего ключа обязано существовать в справочнике, иначе связь «повиснет».
- Линия на схеме показывает направление «много → один», а не порядок вычислений.
Как читать схему базы данных
На схеме прямоугольники — таблицы, линии — связи. Первичный ключ отмечен значком ключа или подписью PK, внешний — подписью FK. Этого рисунка достаточно, чтобы понять, какие поля придётся подтягивать.
- Таблица фактов обычно самая большая и содержит ID, дату, количество и тип операции.
- Названия, цены, районы и адреса лежат в справочниках.
- Чтобы получить признак, нужно пройти по связи: факт → справочник.
- Одинаковые имена полей в двух таблицах — подсказка, по какому ключу соединять.
- Проверьте, что все ID из фактов есть в справочнике: иначе ВПР вернёт #Н/Д.
- Если связь не нарисована, её определяют по смыслу: «товар» и «артикул», «магазин» и «ID магазина».
Условия запроса
Любой запрос — это набор условий, которые должны выполняться одновременно или по выбору. Ошибка в одном условии обычно меняет ответ целиком, поэтому условия лучше выписать отдельно до работы с формулами.
- И: все условия должны быть истинны одновременно.
- ИЛИ: достаточно, чтобы выполнялось хотя бы одно.
- НЕ и <>: исключение значения или диапазона.
- Порядок выполнения: НЕ → И → ИЛИ; при сомнении ставьте скобки.
- «Не ниже» — это >=, «не выше» — <=, «более» — >, «менее» — <.
- Диапазон дат задаётся двумя условиями: >= начало И <= конец, обе границы включаются.
- «Все виды» — это несколько строк справочника, а не одно название.
- «Не является килограммом» — условие <> "кг"; пустые ячейки тоже могут попасть в выборку.
И(условие1; условие2)ИЛИ(условие1; условие2)НЕ(условие)>= начало И <= конец
ВПР и ИНДЕКС / ПОИСКПОЗ
ВПР — основной инструмент задания: она переносит признак из справочника в таблицу фактов по ключу. Главное — правильно выбрать диапазон и номер столбца внутри него.
- =ВПР(искомое; диапазон; номер_столбца; 0): четвёртый аргумент 0 означает точное совпадение.
- Первый столбец диапазона должен содержать искомый ключ.
- Номер столбца считается внутри диапазона, а не по всему листу.
- Диапазон справочника фиксируют абсолютными ссылками: Справочник!$A:$F.
- ВПР не ищет левее ключа — в таком случае используют ИНДЕКС + ПОИСКПОЗ.
- #Н/Д означает, что ключа нет в справочнике, мешают пробелы или число хранится как текст.
- Для двух условий сразу создают вспомогательный ключ-столбец или используют СУММЕСЛИМН.
=ВПР(ключ; Справочник!$A:$F; 6; 0)=ИНДЕКС(Справочник!$F:$F; ПОИСКПОЗ(ключ; Справочник!$A:$A; 0))
СЧЁТЕСЛИМН и СУММЕСЛИМН
Эти функции считают строки и суммируют значения, которые удовлетворяют сразу всем перечисленным условиям. Они удобны, когда условия уже разложены по столбцам.
- =СЧЁТЕСЛИМН(диапазон1; критерий1; диапазон2; критерий2; ...) — количество подходящих строк.
- =СУММЕСЛИМН(диапазон_сумм; диапазон1; критерий1; ...) — сумма по подходящим строкам.
- Все диапазоны — и условий, и суммирования — должны быть одинаковой длины и начинаться с одной строки.
- Числовое сравнение записывают в кавычках: ">=3200".
- Даты: ">=03.06.2021" и "<=10.06.2021"; можно собирать из ДАТА().
- «Не равно»: "<>Заречный" или "<>кг".
- Шаблон текста: "порошок*" — все значения, начинающиеся с этого слова.
- Если условий слишком много, добавьте вспомогательный столбец-флаг.
=СЧЁТЕСЛИМН(диапазон1; критерий1; диапазон2; критерий2)=СУММЕСЛИМН(диапазон_сумм; диапазон1; критерий1; ...)
ЕСЛИ + И / ИЛИ: столбец-флаг
Когда условий много или они комбинируются, удобнее столбец-флаг: 1 — строка подходит, 0 — нет. Затем флаг умножают на числовое поле и суммируют. Именно так решены многие задачи базы Kompege.
- =ЕСЛИ(И(условие1; условие2); нужное_поле; 0) возвращает значение или ноль.
- ИЛИ вкладывают внутрь И: =ЕСЛИ(И(ИЛИ(ID=2; ID=47); ...); ...).
- Флаг 1/0 можно умножать на количество, цену или стоимость.
- Текст в арифметике даёт #ЗНАЧ! — проверяйте, что поле числовое.
- Пустые ячейки СУММ игнорирует, но СЧЁТЗ их считает — это разные величины.
- После протягивания формулы проверьте две-три строки вручную.
=ЕСЛИ(И(...); значение; 0)=СУММПРОИЗВ(флаг; значение)
СУММПРОИЗВ: количество × цена
Если стоимость строки не записана готовым числом, её получают умножением количества на цену. СУММПРОИЗВ перемножает диапазоны поэлементно и сразу суммирует результат.
- =СУММПРОИЗВ((Район="Октябрьский")*(Тип="Продажа")*Количество*Цена).
- Все диапазоны должны быть одной длины.
- Каждое условие заключается в скобки.
- Логическое И — умножение условий, логическое ИЛИ — сложение альтернатив.
- Для отрицания используйте (Поле<>"значение").
- Проверьте формулу на одной контрольной строке: результат должен совпасть с ручным расчётом.
=СУММПРОИЗВ((условие1)*(условие2)*Количество*Цена)
Сводная таблица и фильтр
Сводная таблица делает то же, что формулы, но быстрее и с меньшим числом ошибок в диапазонах. Она особенно полезна, когда нужно сначала сгруппировать данные, а потом найти итог.
- Вставка → Сводная таблица; исходный диапазон должен включать заголовки.
- В «Строки» кладут группировку: район, отдел, поставщика.
- В «Значения» — сумму по количеству или стоимости.
- В «Фильтры» — дату, тип операции, категорию.
- После изменения исходных данных нажмите «Обновить».
- Сверьте общий итог сводной с суммой по всей исходной таблице.
Даты, текст и единицы
Большая часть ошибок в задании 3 — не в логике, а в единицах и форматах. Дата в Excel хранится числом, текст может содержать лишние пробелы, а ответ иногда просят в тысячах или процентах.
- Сравнивайте даты с датами: "03.06.2021" или ДАТА(2021;6;3), а не текст "3 июня".
- Границы диапазона включаются, если в условии сказано «с … по …».
- Текст разбирают через ЛЕВСИМВ, ПРАВСИМВ, ПСТР, НАЙТИ и ПОДСТАВИТЬ.
- Пробелы убирает СЖПРОБЕЛЫ, число из текста — ЗНАЧЕН.
- Масса партии = количество упаковок × количество в упаковке × масса единицы.
- В тысячи и тонны переводят после суммирования, а не до него.
- «Целая часть» — это ОКРУГЛВНИЗ или ЦЕЛОЕ, а не обычное округление.
- Модуль отрицательной прибыли — ABS.
=ДАТА(2021;6;3)=ОКРУГЛВНИЗ(сумма/1000; 0)=ABS(прибыль)
Экстремум и последняя запись
Формулировки «позже всего», «наименьшая прибыль», «самый дорогой» требуют сначала найти экстремальное значение, а потом вернуть связанное с ним поле. Порядок действий здесь важнее самой формулы.
- Сначала отфильтруйте записи по типу операции и товару.
- Найдите экстремум через МАКС/МИН или МАКСЕСЛИ/МИНЕСЛИ.
- Оставьте строки, где значение равно найденному экстремуму.
- Ничью разрешает дополнительное условие: например, больший ID операции.
- Нужное поле подтяните через ВПР или ИНДЕКС + ПОИСКПОЗ.
- «По абсолютной величине» — возьмите модуль после нахождения минимума.
- Проверьте, что экстремум не посчитан по отфильтрованным или лишним строкам.
=МАКСЕСЛИ(значения; диапазон_условий; критерий)=МИНЕСЛИ(значения; диапазон_условий; критерий)=ВПР(экстремум; таблица; номер_столбца; 0)
Формат ответа и проверка
Ответ в задании 3 — целое число. Проверка занимает меньше минуты, но спасает балл: почти все потери связаны с типом операции, границей даты или единицами.
- Записывайте только число: без «руб.», «кг» и пояснений.
- «В тысячах» — разделите на 1000 и возьмите целую часть.
- «Целая часть» — отбрасывайте дробную, а не округляйте вверх.
- Проверьте знак: прибыль бывает отрицательной, но в ответ часто идёт модуль.
- Убедитесь, что не перепутаны «Поступление» и «Продажа».
- Проверьте обе границы диапазона дат.
- Сверьте ответ вторым способом: формула и сводная таблица.
- Ноль — допустимый ответ; пустая выборка не всегда означает ошибку.