Страницы: 1
RSS
PP. В выражении с CALCULATE использовать в качестве условия переменную-константу
 
Добрый день!

Подскажите, пожалуйста, как правильно написать формулу в PP, что бы использовать в качестве проверки условия выражение с константой.
В данных есть 2 года, нужно посчитать переменную, где бы брались данные за определенный год.
Формула =CALCULATE([Sum of Unique sold CBU];Sales[Year]=2020) работает.
Но так как вычислений будет некоторое количество, хотелось бы год задавать в виде переменной В частности, чтобы в следующем году поменять только в двух местах PY=2019 -> 2020, TY=2020 -> 2021.
Если делаю measure PY=2019, то не получается использовать ее в CALCULATE, т.е. вот это =CALCULATE([Sum of Unique sold CBU];Sales[Year]=[TY]) не работает, в ошибке пишет "Calculation error in measure 'Sales'[TDP_AvSKUTY-POPPY]: A function 'CALCULATE' has been used in a True/False expression that is used as a table filter expression. This is not allowed."
Также не получается использовать и такое выражение =CALCULATE([Sum of Unique sold CBU];Sales[Year]=max(Sales[Year]))
Как все же сделать так, чтобы не писать константу (2020), а использовать переменную, т.е. чтобы работал фильтр Sales[Year]=[TY]?
 
а если так попробовать на... обмануть судьбу?
Код
= var ty = [TY]
return
CALCULATE([Sum of Unique sold CBU];Sales[Year]=ty)

З.Ы. и оформите формулы в вашем посте согласно правил в теги CODE, не расстраивайте модераторов.
Изменено: PooHkrd - 21.02.2020 14:56:25
Вот горшок пустой, он предмет простой...
 
Код
CALCULATE([Sum of Unique sold CBU];Filter(Sales,Sales[Year]=[TY]))
 
PooHkrd, так это вовсе и не код, а просто в интерфейсе переменных формула пишется (на картинке). То, что вы предложили, сюда же не впишется?
Изменено: Muchacha - 22.02.2020 21:54:54
 
Цитата
Muchacha написал:
В PP использование констант
Ваш вопрос, судя по названию темы, сводится к тому, что Вы хотите узнать узнать - можно ли в РР использовать константы? Так?
 
Ну вообщем да. Не получается в формуле CALCULATE использовать переменные, которые являются константами.

DrillPipe, к сожеалению это работает не так. Он просто не считает значение в другом году (рис.1). А нужно, чтобы получалось одинаковое значение в обоих годах, как на второй картинке.
 
Цитата
Muchacha написал:
То, что вы предложили, сюда же не впишется?
А вы попробуйте.
И прекратите оверквотить, а то вообще тему закроют.
Вот горшок пустой, он предмет простой...
 
Цитата
Muchacha написал:
Ксожелению это работает не так.
Код
CALCULATE([Sum of Unique sold CBU];Filter(All(Sales),Sales[Year]=[TY]))
 
Цитата
DrillPipe написал:
Код ? 1CALCULATE([Sum of Unique sold CBU];Filter(All(Sales),Sales[Year]=[TY]))
Ксожалению тоже не сработало. Во всех строках получилось общая сумма за 2020 год
 
Цитата
PooHkrd написал: а если так попробовать на... обмануть судьбу?
А это сработало! Даже и не знала, что такую Войну и мир можно писать в формулах. Боюсь только сама этого я больше не воспроизведу, если потом придется что-то делать еще, т.к. не понимаю, что здесь написано((
Обман судьбы состоит в том, var он как-то ест по-другому, нежели обычную measure?

Спасибо огромное!
Изменено: Muchacha - 22.02.2020 21:56:56
 
CALCULATE([Sum of Unique sold CBU];Filter(All(Sales[Year]),Sales[Year]=[TY]))

Контексты в DAX
Изменено: DrillPipe - 21.02.2020 21:00:03
 
И это сработало! Спасибо огромное!

После вашего второго сообщения поизучала раздел Фунции фильтрации, но не получилось достичь желаемого результата.
Изменено: Muchacha - 22.02.2020 21:56:27
 
Совет если не хотите каждый раз править константу в PP
Создайте таблицу с годами и можно такой вариант переменной
IF(HASONEVALUE ( ВашаТаблица[ПолеГод] ), Values(ВашаТаблица[ПолеГод]), 2019)

Добавьте в срез данные из таблицы

ЗЫ
2019 - значение по умолчанию если таблица не отфильтрована и содержит несколько значений
Страницы: 1
Наверх