Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Power BI: подсчитать сумму выработки за аналогичный период прошлого года
 
Добрый день, колеги! Прошу помощи в следующем вопросе. В Power BI вывожу выработку за выбранный период (в примере это октябрь 2019 года). Также мне нужно вывести выработку за аналогичный период прошлого года (т.е. октябрь 2018 года). Создаю меру МераПрошлыйГод = CALCULATE(SUM ([выработка, ед.]); DATEADD('ДанныеДиспетчера'[период].[Date]; -1; YEAR)). Однако выдается значение Пусто.
Файл с примером во вложении
Изменено: Александр - 18 Ноя 2019 11:04:36
 
не могу открыть ваш файл. Выдает ошибку.

Но лично мне вот такое обращение к столбцу не очень понятно
Код
'ДанныеДиспетчера'[период].[Date]
Изменено: PooHkrd - 18 Ноя 2019 12:02:05
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Но лично мне вот такое обращение к столбцу не очень понятно
Это столбец с датами. Если я не ошибся, то это условие, по которому суммируется выработка по выбранным датам, но на год меньше.
Изменено: Александр - 18 Ноя 2019 13:19:17
 
У меня файл тоже не открылся. Исходя из формулы я вижу, что вы пытаетесь обратиться непосредственно столбцу с датой именно в таблице фактов, но в DAX практически все  функции работы с датами  работают с полным календарем.
То есть вам сначала надо создать непрерывный календарь с первой до последней даты использующихся в файле, а потом уже обращаться к нему.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Без календаря с датами эта функция не будет работать. при добавлении  таблицы с датами, все работает нормально. как и сказал Dyroff.
В вашем примере этот столбец нельзя использовать для сравнения дат.  
 
Сделал календарь непрерывных дат, поправил формулу:
Код
МераПрошлыйГод = CALCULATE(SUM ([выработка, ед.]); DATEADD('Календарь'[Date]; -1; YEAR))

Пустые значения пропали, но теперь формула возвращает значение октября 2019 года (т.е. тоже самое), а не прошлого года  :(

 
Если не ошибаюсь вы дату выбираете из столбца периода. а надо выбирать из календаря. у меня эта формула работает корректно. если выбрать правильный срез.
Код
МераПрошлыйГод = CALCULATE(SUM ([выработка, ед.]); SAMEPERIODLASTYEAR('Таблица'[Date].[Date]))
 
Цитата
aibolit написал:
Если не ошибаюсь вы дату выбираете из столбца периода. а надо выбирать из календаря
Нет, я выбираю из столбца периода в календаре непрерывных дат, который сформировал через формулу Календарь = CALENDARAUTO (). Кстати, я попробовал и вашу формулу, но все равно возвращаются даты не прошлого периода, а текущего  :(
Код
МераПрошлыйГод = CALCULATE(SUM ([выработка, ед.]); SAMEPERIODLASTYEAR('Календарь'[Date].[Date]))
 
А может ли возникать ошибка из-за того, что в связях у меня Календарь не появляется? (Сообщение "Произошла неизвестная ошибка")
 
надо сделать связь и будет все хорошо.  
 
Цитата
aibolit написал:
надо сделать связь и будет все хорошо.  
вот с этим и проблема. При попытке создать связь, появляется ошибка при обновлении. Что это может быть такое?
Ошибка.PNG (8.21 КБ)
Изменено: Александр - 18 Ноя 2019 17:19:07
 
Прошу прощения, но я в этом не смогу помочь, может быть кто-то еще сможет помочь
 
Вроде заработало спасибо! Но вот не могу понять следующее. Почему, если я даты выбираю в таблице, то все данные за прошлый год подтягиваются корректно, а стоит мне переключить элемент на срез, то считать перестает???
Файл во вложении
 
Срезы, как я помню не совсем правильно работают в датами. то есть они полностью отсекут данные и предыдущий год они не найдут используйте таблицы и все будет работать. в файле 2 вида таблиц.  
 
Мне нужно, чтобы когда открывается отчет, то там сразу были отфильтрованы значения отчетного периода (например, за 3 кв.), но при этом на графике отображалась выработка за все время. Айболит, подскажите, пжл, как этот период можно зафиксировать в таблице с датами (к сожалению, при открытии фильтр не сохраняется)?
Изменено: Александр - 20 Ноя 2019 10:41:50
Страницы: 1
Читают тему (гостей: 1)
Наверх