Страницы: 1
RSS
Power BI: не получается вывести меру "Прошлый период"
 
Коллеги, добрый день! Имеются у меня показатели выработки за несколько лет. При этом мне нужно вывести в таблице столбец "Выработка сезона" и "Выработка прошлого сезона". И вроде все работает, но есть небольшой неприятный момент: в таблицу выводится показатели прошлых периодов по тем месяца, которые еще только предстоят. Например, в таблице есть выработка за февраль 2020 года, хотя за февраль 2021-го, конечно, еще нет данных. Как мне убрать будущие периоды?
Понимаю, что нужно фильтровать в формуле, но почему-то не получается. Вот эта формула не считается совсем. При этом без блока FILTER  все считается корректно.
Код
Мера_Выработка_YoY, ед. = CALCULATE(
SUM('ДанныеДиспетчера'[выработка, ед.]), 
DATEADD('яКалендарь'[Date],-1,YEAR),
FILTER('ДанныеДиспетчера', 'ДанныеДиспетчера'[период]<=MAX('ДанныеДиспетчера'[период])))


Файл большой, поэтому только ссылка на Яндекс Диске https://yadi.sk/d/LdWZBOSAbIcHnw
 
нужно отфильтровать с начала года на  день месяца или конец месяца Только со сдвигом в год. А у вас в запросе весь предыдущий год - не могу пока посмотреть файл, но видимо потому что ссылаетесь на справочник дат заполненных до конца 2021 года
 
Цитата
DrillPipe написал:
видимо потому что ссылаетесь на справочник дат заполненных до конца 2021 года
совершенно верно. Все из-за справочника. Поэтому и нужен фильтр в формуле. Не пойму, как его сделать (
 
Попробуйте как-то так (не тестил, пишу с коленки):
Код
Мера_Выработка_YoY, ед. = 
var maxfact = calculate( MAX('ДанныеДиспетчера'[период]), all('яКалендарь'[Date]) )
return
CALCULATE(
SUM('ДанныеДиспетчера'[выработка, ед.]), 
calculate( DATEADD('яКалендарь'[Date],-1,YEAR), FILTER('яКалендарь', 'яКалендарь'[Date]<=maxfact) ) )
Изменено: PooHkrd - 20.01.2021 17:09:17
Вот горшок пустой, он предмет простой...
 
Выдается ошибка:
В логическом выражении не указан столбец. Каждое логическое выражение (True/False), используемое в качестве выражения фильтра таблицы, должно ссылаться ровно на один столбец.
Изменено: Александр - 21.01.2021 14:18:16
 
Вы бы пример, приложили к форуму, возможно помог бы. С облака я скачать не могу.
Вот горшок пустой, он предмет простой...
 
Цитата
Александр написал:
Не пойму, как его сделать (
Код
=IF([выработка, ед]=blank();blank();[Мера_Выработка_YoY, ед.])
 
Vladimir Chebykin, не работает
https://yadi.sk/d/LdWZBOSAbIcHnw]https://yadi.sk/d/LdWZBOSAbIcHnw

Цитата
PooHkrd написал: Вы бы пример, приложили к форуму
Не получается: файл 0,9 мб. Уже все поудалял, а размер не уменьшается
 
Цитата
Александр написал:
не работает
не может не работать, значит что-то делаете не так.
П.С. надеюсь Вы не копипаст сделали, я просто от руки набросал - логику показать.
 
Код
Мера_Выработка_YoY2, ед. = IF('ДанныеДиспетчера'[Мера_Выработка_Факт]=blank(),
blank(),
[Мера_Выработка_YoY, ед.])
Изменено: Александр - 21.01.2021 15:55:28
 
Цитата
Александр написал:
Вот эта формула не считается совсем. При этом без блока FILTER  все считается корректно.
если в таком виде ваша мера не работает, то почему же она должна заработать внутри другой меры IF?
Уберите Filter из меры и повторите снова с IF.
 
Цитата
Vladimir Chebykin написал:
если в таком виде ваша мера не работает, то почему же она должна заработать внутри другой меры IF?
Точно! Я забыл убрать оттуда FILTER, после того, как отправил на форум))
Теперь все заработало!!! Спасибо  :)  
Страницы: 1
Наверх