Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3466348
А
Аноним
09 октября 2025 23:19 · публичный вопрос
А
Аноним

Привет! У меня для тебя сложная задача. Я работаю в exele. У меня есть предметная областность, это АЗС. Также у меня есть сущности, это: организация, поставщики, товары,…

Запрос пользователя

Привет! У меня для тебя сложная задача. Я работаю в exele. У меня есть предметная областность, это АЗС. Также у меня есть сущности, это: организация, поставщики, товары, сотрудники. Помоги мне связать между собой мои сущности. Например, мои товары будут поставляться партнёрам, как мне это показать в таблице, если мы знаем, что у каждой сущности есть индивидуальный айди.

Ответ нейросети
09 октября 2025 23:19

Отлично, давайте образуем простую, но рабочую модель связей для ваших сущностей в Excel и покажем, как отражать поставки товаров партнёрам.

Что вы хотите сделать по сути

  • У каждой сущности есть индивидуальный ID: OrganizationID, SupplierID, ProductID, EmployeeID.
  • Товары будут поставляться партнёрам (организациям типа "Партнёр"). Нужно показать эту связь в таблицах и уметь получать сумму поставок и ценность поставок.
  • Оптимально реализовать через несколько таблиц и связь между ними через общие ключи (FK/PK). В Excel это можно сделать через таблицы Excel + модель данных (Power Pivot) или через обычные формулы.
  1. Рекомендованная структура (таблицы и связи)
  • Организации (Organizations)

    • OrganizationID (PK)
    • Name
    • Type (например: Партнёр, Розничный объект, Штаб-квартира)
    • Address, Contact
  • Поставщики (Suppliers)

    • SupplierID (PK)
    • Name
    • ContactPerson
    • Phone, Email
  • Товары (Products)

    • ProductID (PK)
    • Name
    • Unit (единица измерения, напр., литр, штука)
    • Category, PriceBase
  • Поставки/Доставки к партнёрам (Shipments) — это фактовая таблица, связывающая три сущности

    • ShipmentID (PK)
    • SupplierID (FK -> Suppliers.SupplierID)
    • ProductID (FK -> Products.ProductID)
    • OrganizationID (FK -> Organizations.OrganizationID) // здесь это партнёрская организация
    • Quantity
    • ShipmentDate
    • UnitPrice (цена за единицу на момент поставки)
    • TotalValue (можно рассчитывать как Quantity * UnitPrice)
  • Сотрудники (Employees)

    • EmployeeID (PK)
    • Name
    • Position
    • OrganizationID (FK -> Organizations.OrganizationID)
    • HireDate
  1. Пример заполнения (покажем набор простых данных)
  • Организации

    • OrganizationID: 1 | Name: "AZS Партнёр №1" | Type: "Партнёр"
    • OrganizationID: 2 | Name: "AZS Партнёр №2" | Type: "Партнёр"
  • Поставщики

    • SupplierID: 101 | Name: "ГазПоставщик" | ContactPerson: "Иванов И.И."
    • SupplierID: 102 | Name: "ТопСнаб" | ContactPerson: "Петрова Е.А."
  • Товары

    • ProductID: 201 | Name: "Бензин АИ-95" | Unit: "литр"
    • ProductID: 202 | Name: "Дизель" | Unit: "литр"
  • Поставки (Shipments)

    • ShipmentID: 3001 | SupplierID: 101 | ProductID: 201 | OrganizationID: 1 | Quantity: 5000 | ShipmentDate: 2025-10-01 | UnitPrice: 1.20 | TotalValue: 6000
    • ShipmentID: 3002 | SupplierID: 101 | ProductID: 202 | OrganizationID: 1 | Quantity: 8000 | ShipmentDate: 2025-10-05 | UnitPrice: 1.25 | TotalValue: 10000
    • ShipmentID: 3003 | SupplierID: 102 | ProductID: 201 | OrganizationID: 1 | Quantity: 3000 | ShipmentDate: 2025-09-30 | UnitPrice: 1.22 | TotalValue: 3660
  • Сотрудники

    • EmployeeID: 501 | Name: "Иван Петров" | Position: "логист" | OrganizationID: 1 | HireDate: 2024-03-12
    • EmployeeID: 502 | Name: "Мария Смирнова" | Position: "менеджер склада" | OrganizationID: 2 | HireDate: 2023-07-01
  1. Как это показать в Excel (практическое руководство)

Шаг 1. Создайте таблицы

  • В Excel создайте пять таблиц (Insert → Table) и назовите их:
    • Организации (Organizations)
    • Поставщики (Suppliers)
    • Товары (Products)
    • Поставки (Shipments)
    • Сотрудники (Employees)
  • Обязательно добавьте уникальные ID в каждую таблицу (PK). Храните их как целые числа.

Шаг 2. Свяжите таблицы (через модель данных)

  • Выделите одну из таблиц и добавьте в модель данных (Table Tools → Manage Data Model).
  • Повторите для остальных таблиц.
  • В менеджере модели данных создайте связи:
    • Shipments.OrganizationID → Organizations.OrganizationID
    • Shipments.SupplierID → Suppliers.SupplierID
    • Shipments.ProductID → Products.ProductID
  • Если вы хотите видеть сотрудников и их принадлежность к организациям, можно добавить связь:
    • Employees.OrganizationID → Organizations.OrganizationID

Шаг 3. Добавьте расчетные поля (TotalValue)

  • В таблице Shipments можно добавить столбец TotalValue = Quantity * UnitPrice.
  • Либо задать формулу в Power Pivot (DAX): TotalValue := Shipments[Quantity] * Shipments[UnitPrice]
  • Это можно сделать прямо в таблице или как измерение в модели данных.

Шаг 4. Создайте сводные таблицы для анализа

  • Вставьте сводную таблицу, используя модель данных (Data Model) как источник.

  • Пример 1: поставки по партнёрам

    • Строки: OrganizationName (из Organizations)
    • Значения: Sum of Quantity, Sum of TotalValue
    • Фильтр: Type = "Партнёр" (если у поля Type есть множество значений)
  • Пример 2: поставки по товарам к каждому партнёру

    • Строки: OrganizationName, ProductName
    • Значения: Sum of Quantity, Sum of TotalValue
  • Пример 3: поставки от каждого поставщика

    • Строки: SupplierName
    • Значения: Sum of TotalValue

Шаг 5. Альтернатива без модели данных (используя формулы)

  • В Shipments можно добавить столбец: OrganizationName = VLOOKUP(Shipments[OrganizationID], Organizations, 2, FALSE)
  • Аналогично для SupplierName и ProductName.
  • Затем можно строить сводные таблицы обычным способом, но связи между таблицами не будут автоматическими — лучше поддерживать модель данных.
  1. Что вы получите в результате
  • Четкое отображение связей между сущностями:
    • Поставщики поставляют определённые товары (через Shipments)
    • Поставки привязаны к конкретной партнёрской организации (OrganizationType = Партнёр)
    • Сотрудники привязаны к организациям
  • Возможность быстро получить:
    • общую стоимость поставок за период
    • объём поставок по партнёрам и по товарам
    • долю каждого поставщика в общих поставках
    • историю поставок с разбивкой по дате
  1. Пример итогового набора данных (наглядно)
  • Организации
    • OrganizationID: 1, Name: "AZS Партнёр №1", Type: "Партнёр"
  • Поставщики
    • SupplierID: 101, Name: "ГазПоставщик"
  • Товары
    • ProductID: 201, Name: "Бензин АИ-95"
  • Поставки
    • ShipmentID: 3001, SupplierID: 101, ProductID: 201, OrganizationID: 1, Quantity: 5000, ShipmentDate: 2025-10-01, UnitPrice: 1.20, TotalValue: 6000
    • ShipmentID: 3002, SupplierID: 101, ProductID: 202, OrganizationID: 1, Quantity: 8000, ShipmentDate: 2025-10-05, UnitPrice: 1.25, TotalValue: 10000
  • Сотрудники
    • EmployeeID: 501, Name: "Иван Петров", Position: "логист", OrganizationID: 1, HireDate: 2024-03-12
  1. Советы по качеству данных
  • Всегда храните IDs в качестве первичных ключей и используйте их в связях.
  • В сводных таблицах показывайте не только количество, но и денежную стоимость поставок (TotalValue).
  • Для партнёров используйте фильтр по полю OrganizationType (Партнёр), чтобы не смешивать с другими типами организаций.
  • Регулярно обновляйте связи в модели данных при добавлении новых записей.

Если хотите, могу привести готовый пример набора Excel-файла (с таблицами, связями в Data Model и примерной сводной таблицей) или помочь пошагово заполнить ваш файл, опираясь на ваши текущие названия столбцов и файлы.