Добрый день, уважаемые форумчане. Прошу помощи, уперся в меру расчета "Дефицита запасов".
Дано: 1. План продаж на каждый месяц, 2. Начальный запас товаров, 3. Остаток запасов на конец каждого месяца, с учетом плана продаж, 4. Поступление запасов = 0, в данном примере, 5. Срок поставки занимает 2,2 месяца, поэтому мера "План отгрузки с завода" сдвигает кол-во запасов на величину "Срока поставки", 6. План отгрузки с завода зависит от меры "Дефицит запасов", которая считается некорректно. А именно первый месяц дефицита товаров должен показать -3 (остаток запасов на конец предыдущего месяца - план продаж текущего месяца), в приложенном примере. Но он показывает -6.
Пример во вложении. Работа сделана на модели данных через Power Pivot. Пример выложен на гугл диск. Ссылка ниже. Размер 2Mb
Виталий Бермес, Я что-то пропустил Вашу тему. Сегодня времени нет, завтра гляну. Но по описанию очень похоже на платное ТЗ И дело не в том, что у Вас что-то не реализовано. А в том, чтобы что-то исправить/добавить нужно разобраться в Вашей модели и данных. И далеко не факт, что это прям интересная для DAX задача
surkenny, я вас понимаю, на мой взгляд интерес в DAX в том, что огромное кол-во людей предпочитает решить задачу просто через эксель, иногда идя по сложному пути. Но ведь есть DAX, который как раз позволяет прописать логику решения и тот миллион людей, который занимается планированием отгрузок смогут это делать быстрее, точнее, легче. А чтобы это не выглядело, что я просто хочу оформить заказ, я большую часть сделал сам, прописав на тесте простые меры. Но вот с одной спотыкнулся и не могу дойти до ее решенияз( Если я могу облегчить свой вопрос и дать дополнительные пояснения, я буду рад это сделать)
1.Почему таблицы "plan 22" и "plan23" разбиты на отдельные таблицы? Они идентичны, зачем искусственно усложнять расчеты? Объедините их в одну таблицу "Plan" 2. Дайте другим таблицам осмысленное название - нет абсолютно никакого желания разбираться, что у вас обозначают "MPL test", "PSL test", "Model test". Исправьте, тогда проще будет понять вашу модель данных и сделать решение, которое вам требуется
Виталий Бермес, я и не говорил, что не нужно решать в PP. Я как раз за:) Я говорил о том, что, чтобы Вам помочь, нужно много времени потратить на понимание Вашей модели. А само решение будет не сильно интересным для меня, потому что уже 1000 раз подобное выражение на Dax писал. А если потраченное мной время не соответствует полученному удовлетворению от решения, то разницу может скомпенсировать только материальное поощрение И я это заранее. Еще даже не смотрел Ваш пример. Vladimir Ch уже отписался, поэтому до упрощенной модели и не буду смотреть
Ладно, по факту не все так сложно оказалось. Виталий Бермес, меры уже прописал, нужно было просто их подправить. Во-первых, Виталий Бермес, когда пишите меры, всегда проверяйте их на ошибки - у Вас 2 ошибки: 1.
Код
Поступление заказов:=COUNT('MPL test'[Model])
нужно заменить COUNT на COUNTA 2.
Код
Срок поставки:=IF([План продаж]<>0;MAX('Model test'[Доставка 1])+MAX('Model test'[Доставка 2]);BLANK())
тоже выдает ошибку. Вам нужно в PQ задать формат столбцов как число - сейчас текст. Во-вторых,
Цитата
Виталий Бермес написал: "Дефицит запасов", которая считается некорректно
сдвиг на один месяц назад решается довольно просто (DATEADD, например). В итоге мера работает в таком виде, проверяйте:
Код
Дифицит запасов:
=var stock_prev_month = CALCULATE([Запас на конец месяца];DATEADD('Calendar'[Дата];-1;MONTH))
var rezult = stock_prev_month - [План продаж]
return
IF(rezult>0;BLANK();rezult)
Vladimir Ch, спасибо за помощь, но как результат "Дефицит запасов" стал считаться по накопительной (это было реализовано мерой "Запас на конец месяца"). Т.е. дефицит каждого прошлого месяца прибавляется к дефициту текущему. Моя задача в том, чтобы показать дефицит товаров именно на каждый месяц, без привязки к предыдущему. Какой мерой можно реализовать данный вопрос?
Также интересный момент, что проверка мер показала что ошибок нет, прикладываю скрин. Но в любом случае спасибо!)
Vladimir Ch, поправлю себя. Вы правы в расчетах. Но в моем примере "Запас на конец месяца" считается по накопительной. Возможно если изменить данную меру и затем результат подставить в вашу меру, расчет даст корректный результат. Но как сделать сделать меру без накопительного итога я не знаю.
По задаче получается, мне нужно сначала избавиться от профицита запасов (Это когда запас на конец месяца с учетом плана продаж остается положительный), затем выйти на 0, т.е. на идеальную оборачиваемость, когда новые товары заказываются под реальные сделки и поддерживать эту величину, заказывая фактически штучное кол-во запасов равное плану продаж. Чтобы Запас на конец месяца всегда оставался равен 0.
Честно, не получается до конца въехать в логику вашего расчета. Вы под сводной таблицей обычными формулами посчитайте, как должен получиться результат. Тогда наглядно будет видно, что откуда брать