Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Расчет продаж за предыдущий период (DAX), DAX
 
Lari, удобный вариант! В перспективе можно варьировать обеими границами календаря. Возьму на вооружение. Спасибо!
Расчет продаж за предыдущий период (DAX), DAX
 
@surkenny Помогло! Спасибо, дружище!

Еще я обнаружил у себя логическую ошибку: если отталкиваться от MAX('Все данные'[ПродажаДата]), то можно упустить часть продаж в прошлом периоде. Например, если в календаре выбрать 05.08.2022, то продаж за текущий период в этот день может не быть, а продажи за прошлый период в этот день были. Поэтому я переписал меру вот так, вроде все сходится по цифрам:

Продажи за прошлый период = CALCULATE(
   SUM('Все данные'[КолПроданоРозн]),
   'Все данные'[ПродажаДата] <= EDATE(MAX('Календарь'[Date]), -12),
   'Все данные'[ПродажаДатаЗаписиВБД] <= EDATE(MAX('Календарь'[Date]), -12)
)

ВСЕМ ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ!
Расчет продаж за предыдущий период (DAX), DAX
 
@Lari, @surkenny
Сделал пример (см вложение)
Проблемы в расчете меры "Продажи за прошлый период"
Сейчас она считается так:

Продажи за прошлый период = CALCULATE(

  SUM('Все данные'[КолПроданоРозн]),

  DATESMTD(DATEADD('Календарь'[Date], -1, YEAR)),

  'Все данные'[ПродажаДатаЗаписиВБД]<=MAX('Все данные'[ПродажаДата])

)

Это неправильно.
Последнее условие, как заметил Lari, не будет работать, т.к MAX('Все данные'[ПродажаДата]) вернет максимальную дату продажи за текущий период с учетом фильтрации по календарю.
А нужно получить максимальную дату за прошлый период.
Последнее условие в мере необходимо, чтобы при расчете продаж за прошлый период исключить из выборки строчки, похожие на пример снизу (продажа была совершена 11.08.2021, но занесли ее в БД 24.08.2021, т.е при расчете продаж с 01.08.2021 по 11.08.2021 данная строчка не должна учитываться).

Изменено: Андрей Швейников - 17.08.2022 14:37:32
Расчет продаж за предыдущий период (DAX), DAX
 
@Lari Вы правы, MAX('Все данные'[ПродажаДата]) вернет 2022.
Можно как-то поправить мое выражение, чтобы MAX('Все данные'[ПродажаДата]) возвращала 2021?
По сути нужно изменить контекст у данной функции, но я не знаю, как это сделать, не нарушая  правил DAX.

Могу дать ссылку на файл pbx (power bi)

@mechanix 85 Спасибо! Сейчас займусь разбором Вашего решения.
Расчет продаж за предыдущий период (DAX), DAX
 
Коллеги, нужна ваша помощь:

Есть модель (см вложение)


Все данные - это таблица с данными о продажах за все периоды (текущий и прошлый)

Календарь - справочник с непрерывными датами

Календарь задействован в фильтре по дате.

В данном фильтре выбирается произвольная дата.

Нужно посчитать продажи (сумма по КолПроданоРозн) за прошлый период (диапазон дат от начала аналогичного месяца в прошлом году до аналогичного дня в прошлом году).

Т.е если в фильтре выбрано 18.08.2022, то сумму нужно посчитать за 01.08.2021 - 18.08.2021

При этом ПродажаДАТАЗаписиВБД <= 18.08.2021

Т.е если в фильтре выбрано 15.08.2022, то сумму нужно посчитать за 01.08.2021 - 15.08.2021

При этом ПродажаДАТАЗаписиВБД <= 15.08.2021


У меня вот такая мера не дает должный результат. Последнее условие не отрабатывает.

Продажи за прошлый период = CALCULATE(

   SUM('Все данные'[КолПроданоРозн]),

   DATESMTD(DATEADD('Календарь'[Date], -1, YEAR)),

   'Все данные'[ПродажаДатаЗаписиВБД]<=MAX('Все данные'[ПродажаДата])

)

Подскажите, пожалуйста, в чем ошибка?

Страницы: 1
Наверх