Доброго времени суток, форумчане! Возникла задача подсчета данных продаж нарастающим итогом за промежуток дат, но сдвинутых на год назад. По расчету по текущему промежутку вопросов нет, формулу создал -
Но попытка просчёта за этот же промежуток со сдвигом на год назад не получилась. Попытался применить DATEADD, на она не работает с max. Буду благодарен, если кто-то встречался с подобной задачей и даст рецепт её решения
Наверное я некорректно привел описание требуемого запроса. Необходимо, чтобы при выборе промежутка дат формула считала выручку за такой же промежуток только прошлого года. Например, если пользователь выбрал промежуток дат с 15 августа 2020 года по 30 августа 2020 года, формула должна считать выручку 15 августа 2019 года по 30 августа 2019 года.
Максим, спасибо за вариант, но он не работает. Нет нарастающего итога и при выставлении фильтра на 1 месяц он в каждой ячейке дня выводит сумму за год. Рядом вывел столбец ВыручкаНИ, который корректно считает текущий нарастающий итог.
С вашего позволения продолжу тему. Есть потребность в расчете нарастающим итогом плана продаж. Но здесь есть нюанс - план выставляется на квартал. В году 4 квартала. На каждый квартал - свой план. Для расчета используется логика - нарастающий план равен полному плану за квартал, умноженному на количество прошедших рабочих дней и делённому на полное количество рабочих дней в квартале. Под эту логику написана мера:
Мера корректно работает внутри квартала. Но если взять годовой промежуток, образуются скачки на даты при переходе с одного квартала на другой. И конечный итог, вычисляемый мерой, некорректный (больше). Это наглядно видно на графике на примере. Подозреваю, что здесь должен быть какой-то цикл, который проходит по кварталам и потом суммирует итог. Но как его создать, не знаю. Если у вас есть какие-либо мысли по данной задаче, буду благодарен.
Андрей, спасибо за вариант! Но он имеет недостаток. Нарастающий итог плана распределен по календарным дням. А необходимо распределение нарастающего итога по рабочим.
Sergey Chernichenko написал: А необходимо распределение нарастающего итога по рабочим.
А где определение того, какой столбец в Календаре отвечает за признак рабочего дня? Вы действительно считаете что я должен догадываться? Плюс, кто вам мешает дополнить вычисление действующих дат календаря фильтрацией на рабочие дни?
Код
Var selDates = CALCULATETABLE('Дата'; FILTER(ALLSELECTED('Дата'); 'Дата'[Дата] <= thisLastDate))
Плюс на забудьте дополнить функцию, учётом рабочих дней, для вычисляемого столбца ПланДень. Помощь на форуме предполагает в том числе, что вы тоже участник этого процесса, а не просто потребитель в магазине.
Андрей, признаю, не написал. За РД отвечает столбец РД в календаре (в нем установлено значение 1 по рабочим дням в 2020 году. Спасибо за дополнение. Потребителем не буду, переработаю информацию и выложу вариант. Это достаточно массовая задача, которая у многих пользователей требует решения. Единственный шанс невыкладки - если не справлюсь. Но вы мне реально в ней помогли, я должен справиться. Спасибо.
Во вложении переработанный файл. Точнее, не переработанный, а созданный Андреем. Оставил в нем и первый его вариант по календарным дням (Мера "План НИ 2"), вдруг кому-то необходим вариант с календарными днями. Мера "План НИ 3" работает по варианту рабочих дней. Обратите внимание, что рабочие дни установлены в календаре только на 2020 год, если будете пользоваться позже, не забудьте обновить значения в столбце 'Дата'[РД].
Отдельный и глубокий респект Андрею за простой и изящный алгоритм решения. Мой уровень знаний пока не позволяет так решать подобные задачи. У меня было подозрение, что без использования доп столбца это будет трудно. Но от подозрения до решения - пропасть. Андрей, ещё раз спасибо.
Выявил, что данная структура работает только в одномерном плане. В случае двухмерного плана "Дата-Сотрудник" не работает. Понимаю почему (План в текущей структуре должен иметь уникальные поля для связи с таблицей дат, но при таком варианте это невозможно). Если справлюсь, выложу вариант решения
Сергей, у вас пока большие проблемы с логикой построения иерархии в модели. P. S. И давайте всё же не наглеть. Тема распределение планов нарастающим итогом практически не имеет отношения к сдвигу дат Создайте, пожалуйста, отдельную тему.
Андрей, всегда с уважением отношусь и прислушиваюсь к мнению профи, который знает больше меня. Если вы считаете, что у меня пока большие проблемы с логикой построения иерархии в модели, скорее всего так и есть. Но приведенная вами последняя модель не решает вопрос фильтрации и вывода данных по 2-м параметрам - дате и сотруднику. Она, как и предыдущая, позволяет производить фильтрацию только по дате. У меня смутное ощущение, что всё же таблицы плана и дат при 2-х и более параметрах плана должны быть связаны по столбцам дат. но это пока только ощущения.
Однозначно подтверждаю, что тема "dax нарастающим итогом со сдвигом дат" решена частично Максимом Зеленским и полностью вами. Я продолжил эту ветку со схожими вопросами только по неопытности общения в форуме. Сейчас точно понимаю, что тем форумчанам, которые пользуются поиском, будет тяжелее найти необходимую инфу по работе с планом продаж в ветке "dax нарастающим итогом со сдвигом дат". Поэтому, по вашей рекомендации, создам отдельную тему.
Если вы считаете, что потратили на эту тему больше времени, чем обычно это происходит в форуме, дайте мне знать. Я не люблю быть должным. Думаю, остальные форумчане не в накладе, они получили необходимые алгоритмы и меры))). Возможно кто-то вспомнит добрым словом вас за эту помощь. Я уже своё мнение высказал.
Я считаю, что продолжать следует в новой теме. Вашу проблему такая иерархия - решает. Вы просто пока рассматриваете меры - как нечто универсальное. Но универсальных их не много: сумма, счёт, среднее и т. д. Большинство же худо-бедно мер зависят от контекста. Следовательно
Цитата
Sergey Chernichenko написал: вывода данных по 2-м параметрам - дате и сотруднику
нужно представлять в примере этот контекст. В рамках же приложенного примера - имеется рабочий результат. Ещё раз - давайте продолжать в новой теме