Страницы: 1
RSS
Power BI: подсчитать накопительный товарооборот по двум годам
 
Всем доброго времени года!

Как написать формулу для накопительного товарооборота для следующей модели данных. Необходимо подсчитать накопительный товарооборот по 2017 г и 2016 г.
На листе также присутствует слайсер для дат, это календари предыдущего периода и текущего периода, предварительно необходимо обойти их фильтры.  

Попытка использовать следующую формулу ни к чему не привела:
Код
Т/о с НДС накопительно = CALCULATE(
   SUM('Общие данные'[Товарооборот c НДС]);
      
        FILTER(
         ALL('Общие данные'[Год]); 'Общие данные'[Год]<=2017)
           )
           
 
Доброе время суток.
Попробуйте так.
Изменено: Андрей VG - 11.03.2018 19:14:17 (Не удобно в Paint текст меры набирать :-) )
 
А я не понял до конца, что значит "обойти их фильтры". Если срезы надо проигнорировать, и просто посчитать суммарный оборот за 2017 и 2016, то надо в формулу автора добавить ALL(Календарь_2016) и ALL(Календарь_2017).
F1 творит чудеса
 
В качестве фильтров дат используются таблицы 'Calendar_General' и  'Calendar_Previos', их фильтры необходимо обойти.  Мне необходимо, чтобы товарооборот считался накопительно по числам, на данный момент получается посчитать только суммарный товарооборот.
Код
Т/о с НДС накопительно = CALCULATE(
   SUM('Общие данные'[Товарооборот c НДС]);
      
        FILTER(
         ALL('Общие данные'); 'Общие данные'[Год]<=2017)
)
      
 
 
1. 'Calendar_Previos' при неактивной связи ничего не фильтрует. Но ок, чтобы не обращало внимание на фильтр по 'Calendar_General', используйте в мере ссылку на эту таблицу:
Код
FILTER(
         ALL('Calendar_General'); 'Calendar_General'[Год]<=2017)
2.
Цитата
Кирсон написал:
чтобы товарооборот считался накопительно по числам
понятнее не стало. Что значит "по числам" - числа месяца? Что у вас за поле "Месяц" - откуда оно, из какой таблицы? Что там за цифры замазаны - номера месяцев? Числа месяца?
3. Решение Андрей VG устраивает?
F1 творит чудеса
 
Вроде как с накопительным итогом разобрался:
Т/о с НДС накопительно
Код
 = CALCULATE(SUM('Общие данные'[Товарооборот c НДС]);
                               FILTER(All('Calendar_General'); 'Calendar_General'[Год]>=MAX('Общие данные'[Год]));
                               FILTER(ALL('Общие данные'); 'Общие данные'[Дата]<=MAX('Calendar_General'[Дата]))
                               
)

Но почему то, когда выбираю в слайсерах дат другую дату, накопительный товарооборот, который не должен реагировать на эти изменения почему на них реагирует и считается именно за промежуток, который выбирается в слайсере. Как видно на графике расчет остановился на 24 числе, как сделать, чтобы не учитывались фильтры?
Скрытый текст
 
Цитата
Кирсон написал:
Т/о с НДС накопительно = CALCULATE(SUM('Общие данные'[Товарооборот c НДС]); FILTER(All('Calendar_General'); 'Calendar_General'[Год]>=MAX('Общие данные'[Год])); FILTER(ALL('Общие данные'); 'Общие данные'[Дата]<=MAX('Calendar_General'[Дата])) )
эта формула посчитает за период с начала последнего года в основной таблице:
'Calendar_General'[Год]>=MAX('Общие данные'[Год])
и до максимальной даты, заданной срезом по 'Calendar_General'[Дата]:
'Общие данные'[Дата]<=MAX('Calendar_General'[Дата])

Если вы не хотите, чтобы срезы вообще влияли на расчет, отключите их влияние на вкладке Format - Edit Interactions. Выделяете срез, и отключаете его действие на другие визуалы
F1 творит чудеса
 
Спасибо почти всё получилось, но теперь трудность в отображение на данном графике товарооборота за предыдущий период, получилось только по данной формуле,  но кажется что она не совсем верная т.к. в итогах в элементе MATRIX отображается не итого за 2016 г, а сумма на последнею дату в 2016 г.


Т/о с НДС пред периода без фильтра = CALCULATE(
sum('Общие данные'[Товарооборот c НДС]);
       FILTER(ALL('Calendar_General'); 'Calendar_General'[Дата]=(MAX('Общие данные'[Дата]))-365)
 


)
 
Поле "Число" в матрице - это день месяца? Или это что-то другое?
Поясните смысл отображаемого в матрице: накопительный итог по дням месяца, не взирая на то, какой месяц?
F1 творит чудеса
 
Число  это день месяца. Да, необходим накопительный итог по дням месяца не смотря на то какой это месяц.
 
Попробуйте
Код
Т/о с НДС пред периода без фильтра =
CALCULATE (
    SUM ( 'Общие данные'[Товарооборот c НДС] );
    FILTER (
        ALL ( 'Calendar_General' );
        'Calendar_General'[Год]
            = YEAR ( MAX ( 'Общие данные'[Дата] ) ) - 1
            && 'Calendar_General'[Число] <= DAY ( MAX ( 'Общие данные'[Дата] ) )
    )
)
F1 творит чудеса
Страницы: 1
Наверх