Продажи и остатки в Power BI: как построить модель без умножения сумм
Продажи и складские снимки имеют разную детализацию. В Power BI их обычно связывают через общие справочники, сохраняя отдельные таблицы фактов.
Содержание статьи
Продавец объединяет продажи и остатки по артикулу, после чего выручка неожиданно увеличивается. Причина может быть в разной детализации: у одного товара несколько продаж и несколько складских снимков. Модель Power BI позволяет хранить эти события отдельно и анализировать их через общие справочники.
Назвать смысл одной строки
Для продаж строкой может быть позиция заказа, для остатков — количество товара на конкретном складе на конец дня. Это разные наблюдения. В документации Microsoft схема «звезда» разделяет факты, которые суммируют, и измерения — товары, даты, места, по которым фильтруют и группируют.
Сначала составьте описание каждой таблицы. Укажите ключ операции, дату, единицы и поля сумм. Если один файл уже агрегирован до месяца, а другой содержит отдельные заказы, это различие нельзя скрывать одинаковым названием «Продажи». Каждая таблица фактов должна иметь последовательный уровень детализации.
Почему прямое объединение опасно
Учебный пример: товар А продан двумя операциями на 400 и 600 рублей, а в файле запасов для него три ежедневных снимка. Соединение только по товару даст шесть сочетаний и может превратить 1 000 рублей выручки в 3 000. Новых продаж при этом не было.
Вместо расширения каждой продажи всеми снимками сохраните две таблицы фактов. Общий справочник товара должен содержать уникальный ключ. Он связывается с каждой фактической таблицей отношением «один ко многим» там, где это соответствует данным. Дата и склад тоже требуют согласованных справочников и понятного направления фильтрации.
Различать операции и состояние
Выручку за дни можно суммировать, если состав операций и знаки определены корректно. Остаток на конец каждого дня нельзя просто сложить и назвать запасом за месяц. Для него выбирают соответствующий задаче показатель: например, состояние на конкретную дату или обоснованное среднее. Методика такого расчёта должна быть явной.
Не включайте двусторонние связи повсюду ради исчезновения пустого графика. Сначала выясните, откуда фильтр должен приходить к каждой таблице. Неоднозначные пути способны усложнить модель и сделать результат зависимым от неожиданного сочетания элементов отчёта.
Проверить модель до оформления дашборда
Начните с контрольного товара А: сумма продаж остаётся 1 000, а три остатка видны на своих датах. Затем выберите склад, другой товар и период без продаж. Убедитесь, что фильтры влияют на обе таблицы ожидаемо и не исключают существующие запасы только потому, что заказов не было.
Проверьте товары, отсутствующие в справочнике, и повторяющиеся ключи измерений. Общий итог может совпасть случайно, поэтому нужны проверки по нескольким срезам. Если задача проще и требуется только добавить себестоимость к каждой продаже, используйте отдельную методику соединения со справочником Power Query. Она не равнозначна объединению двух самостоятельных потоков фактов.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы