Страницы: 1
RSS
Расчёт себестоимости в PowerPivot из двух таблиц
 
Всем добрый день.

Есть две таблицы - факт продаж и справочник по себестоимости.
Они связаны в модели посредством двух таблиц справочников - Календарь и справочник Номенклатуры.

Подскажите, есть ли возможность рассчитать себестоимость прямо в модели данных не прибегая к использованию Join'ов из PQ?
Ближайшая тема, что нашлась по поиску:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=120586&a...

Также, как и Андрей VG, подумал о SUMX и RELATED.
Но RELATED не позволяет подтянуть инфо из другой таблицы фактов (в частности, из Себестоимости), а предлагает только инфо из переходных справочников.
Изменено: Lefevr - 29.04.2021 13:10:53
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Цитата
Lefevr написал:
есть ли возможность рассчитать себестоимость прямо в модели данных
Есть.
Файл-пример будет?
Вот горшок пустой, он предмет простой...
 
Форум не пропускает даже 93 кб архив, пишет о превышении объёма.
Можно ли отправить файл Вам лично?
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Lefevr, он пропускает, просто не нужно ему всякие 7z архивы подпихивать. Это он их по расширению файла блочит. Выкладывайте rar/zip можно до 300кб
Вот горшок пустой, он предмет простой...
 
PooHkrd, спасибо за подсказку. Не знал, что 7z не в почете.
Приложил.
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Цитата
Lefevr написал:
Приложил.
Это прекрасно, а где в нем показано в какой форме требуется составить сводный отчет и чего именно у вас не получается?
Вот горшок пустой, он предмет простой...
 
Постарался изобразить рядом со сводной таблицей правильный расчет.
А не получается написать формулу, которая корректно рассчитывает себестоимость.
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Посмотрите, оно?
Я там для примера в таблице продажи сделал расчетный столбец, чтобы было понятно, как я вышел на такую меру. В принципе он не нужен, можно удалить.
Обратите внимание, что связь между справочником с себестоимостью и календарем разорвана.
Ну и календарь делать, так как это сделали вы - не совсем верно. в нем должны быть сквозные даты без разрывов, иначе потеряете огромный массив возможностей по Time Intelligence.
Удачи.
Изменено: PooHkrd - 29.04.2021 14:15:29
Вот горшок пустой, он предмет простой...
 
PooHkrd, огромное спасибо!
В частности за реализацию на первом примере с изменением себестоимости по месяцам.
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
PooHkrd, при внесении в рабочую модель DAX перестал воспринимать знак "<" из приведённой формулы при сравнении дат.
Код
=MAXX(FILTER(RELATEDTABLE('СС_поМесяцам');'СС_поМесяцам'[Дата начала действия]<='фактЗаказы_Общий'[Дата]);'СС_поМесяцам'[Итоговая себестоимость]

Т.е. на первое число месяца данные подтягиваются, а в остальные даты - нет.

Не подскажите, в чём может быть проблема?



Изменено: Lefevr - 29.04.2021 16:25:17
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
'СС_поМесяцам 1' и 'СС_поМесяцам' - это разные таблицы
 
Совершенно верно.
Но это опечатка при редакции кода здесь, на форуме.
Поправил предыдущее сообщение. При верном написании ситуация не меняется.
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Lefevr,
Цитата
PooHkrd написал:
Обратите внимание, что связь между справочником с себестоимостью и календарем разорвана.
 
surkenny, вот этот момент просмотрел...
Благодарю.
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Столкнулся с другой сложностью....
Формула выдаёт максимальную себестоимость.
Если она снизится в следующем периоде - получится неверный расчет.
Коллеги, есть ли возможность эту прекрасную формулу скорректировать?
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
Lefevr,
Код
_продажи:=SUMX( 
   ADDCOLUMNS(
      'Продажи'; 
      "p";
      var _p=MAXX( FILTER(RELATEDTABLE('Себестоимость');'Себестоимость'[Период]<='Продажи'[Период] );'Себестоимость'[Период] )
return
CALCULATE(MAXX(RELATEDTABLE('Себестоимость');'Себестоимость'[Себестоимость, руб.]);'Себестоимость'[Период]=_p)); 
   [Количество] * [p] )
 
StepanWolkoff, большое Вам спасибо за решение.
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
Страницы: 1
Наверх