Задание 3
Реляционные базы данных
Как по трём связанным листам Excel найти нужные продажи и посчитать массу, выручку или изменение запаса.
4 подтемы · 31 задача · базовый · ≈ 3 мин
Подтема 1 из 4
База из трёх листов
Три листа файла: что означает строка каждого и как листы связаны по коду.
Как устроена тема
В задании 3 дан файл Excel из трёх листов: «Движение товаров» — поступления и продажи, «Товар» и «Магазин» — справочники. По ним нужно что-то посчитать: массу, выручку или изменение запаса. Вот задача, которую мы будем решать всю тему:
«Используя информацию из базы данных, определи общую массу (в кг) товаров фабрики А, проданных магазинами Северного района за период с 1 по 10 июня включительно».
Задачу решают в четыре шага, и каждому шагу посвящена своя подтема — у каждой своя страница:
- База из трёх листов — ты сейчас здесь: что означают листы и как они связаны.
- ВПР: связь листов — дописываем к каждой продаже район, поставщика и массу.
- Отбор записей: фильтр — оставляем только нужные строки.
- Расчёт ответа — считаем массу и получаем ответ задачи темы: 14,5 кг.
Учиться будем на маленькой базе из трёх магазинов и трёх товаров: все её записи можно проверить глазами.
Зачем три листа
В одной таблице одни и те же сведения повторялись бы в каждой строке. Каждая продажа повторила бы район и адрес магазина, название товара и массу упаковки:
Поэтому сведения делят на три листа: о магазинах, о товарах и об операциях. Сведения о магазине записаны один раз, а операция хранит только его код.
Что означает строка
Строка каждого листа описывает один объект. В листе «Магазин» строка — магазин, в листе «Товар» — товар, в листе «Движение» — одна операция. Строку называют записью, столбец — полем, содержимое ячейки — значением поля:
Перед работой с листом ответь, что означает одна его строка. Одна строка с продажей 20 упаковок — это одна запись и 20 проданных упаковок: «сколько записей» и «сколько упаковок» — разные вопросы.
ID и артикул
У каждого магазина свой код — ID, у каждого товара свой артикул. Коды не повторяются внутри своего справочника, поэтому M1 или 101 указывают ровно на одну запись. Такое поле называют ключом.
| Артикул | Отдел | Наименование | Ед. изм. | В упаковке | Поставщик |
|---|---|---|---|---|---|
| 101 | Бакалея | Макароны рожки | кг | 0,5 | Фабрика А |
| 102 | Бакалея | Макароны перья | кг | 1 | Фабрика А |
| 103 | Бакалея | Рис | кг | 1 | Фабрика Б |
Артикул выглядит как число, но это код: складывать артикулы 101 и 102 так же бессмысленно, как номера телефонов. В листе «Движение» у операции записаны только ID магазина и артикул — остальное находят в справочниках по этим кодам.
Тонкости:названия ключей
В учебниках поле, которое различает записи своей таблицы (артикул в «Товаре»), называют первичным ключом, а поле со ссылкой на другую таблицу (артикул в «Движении») — внешним ключом. Для решения задания эти названия не нужны.
Связь по ID
Листы связывают по совпадению кодов, а не по номеру строки. Чтобы узнать район магазина операции 3, берут её ID магазина — M3 — и ищут такое же значение в листе «Магазин».
Файл задачи
Учебная база — тот же файл в миниатюре. В листе «Движение» 12 операций, в справочниках по три записи. Один магазин встречается во многих операциях — у магазина много поступлений и продаж. Переключай листы под сеткой:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | ID операции | Дата | ID магазина | Артикул | Тип операции | Упаковок, шт. | Цена, руб./шт. |
| 2 | 1 | 01.06.2026 | M1 | 101 | Поступление | 20 | 60 |
| 3 | 2 | 02.06.2026 | M1 | 101 | Продажа | 8 | 80 |
| 4 | 3 | 03.06.2026 | M3 | 101 | Продажа | 5 | 90 |
| 5 | 4 | 03.06.2026 | M2 | 101 | Продажа | 7 | 80 |
| 6 | 5 | 04.06.2026 | M3 | 102 | Продажа | 4 | 140 |
| 7 | 6 | 05.06.2026 | M1 | 103 | Продажа | 6 | 110 |
| 8 | 7 | 10.06.2026 | M1 | 102 | Продажа | 3 | 150 |
| 9 | 8 | 11.06.2026 | M3 | 101 | Продажа | 9 | 85 |
| 10 | 9 | 06.06.2026 | M3 | 101 | Поступление | 12 | 65 |
| 11 | 10 | 06.06.2026 | M1 | 101 | Продажа | 2 | 85 |
| 12 | 11 | 07.06.2026 | M3 | 102 | Поступление | 6 | 100 |
| 13 | 12 | 31.05.2026 | M1 | 101 | Продажа | 4 | 80 |
| A | B | C | |
|---|---|---|---|
| 1 | ID магазина | Район | Адрес |
| 2 | M1 | Северный | Лесная, 5 |
| 3 | M2 | Южный | Садовая, 9 |
| 4 | M3 | Северный | Мира, 12 |
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Артикул | Отдел | Наименование | Ед. изм. | Количество в упаковке | Поставщик |
| 2 | 101 | Бакалея | Макароны рожки | кг | 0,5 | Фабрика А |
| 3 | 102 | Бакалея | Макароны перья | кг | 1 | Фабрика А |
| 4 | 103 | Бакалея | Рис | кг | 1 | Фабрика Б |
Операции идут не по датам: операция 12 записана 31 мая. На экзамене операций сотни, магазинов и товаров — десятки, но листы и столбцы такие же.
Итого
- Три листаоперации и два справочника: магазины и товары
- Строкаоперация, магазин или товар — смотря какой лист
- ID и артикулкоды записей, а не количества
- Связь листовпо совпадению кода, не по номеру строки
- Записи и упаковкиразные вопросы к одним и тем же строкам
Проверьте себя
Ответь сначала сам, потом открой ответ.
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
Практика
Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.
Записи, магазины, упаковки
В таблице операций записи: 21 — M2, 6 упаковок; 22 — M3, 4 упаковки; 23 — M2, 9 упаковок; 24 — M2, 2 упаковки. Сколько здесь записей, сколько магазинов и сколько упаковок?
Введите три числа через пробел в том порядке, в каком их спрашивают.
Подсказка
Записи — строки, магазины — разные коды, упаковки — сумма количеств.
Решение
4 записи, 2 магазина (M2 и M3), 6 + 4 + 9 + 2 = 21 упаковка.
Ответ: 4 2 21
Операции магазина M7
В файле 3-1.xlsx три листа: «Движение товаров», «Товар» и «Магазин». Сколько операций в файле относится к магазину M7?
Введите число.
Подсказка
Включи фильтр по столбцу «ID магазина».
Решение
На листе «Движение товаров» включи фильтр по столбцу «ID магазина» и оставь M7. Выдели видимые ячейки столбца — строка состояния покажет количество 9.
Проверка формулой:=СЧЁТЕСЛИ(C:C;"M7")Ответ: 9
Магазины Октябрьского района
В файле 3-1.xlsx три листа: «Движение товаров», «Товар» и «Магазин». Сколько магазинов справочника находятся в Октябрьском районе?
Введите число.
Подсказка
Отфильтруй столбец «Район» на листе «Магазин».
Решение
На листе «Магазин» фильтр по столбцу «Район» со значением «Октябрьский» оставляет M9, M10, M11 и M12.
Проверка формулой:=СЧЁТЕСЛИ('Магазин'!B2:B17;"Октябрьский")Ответ: 4