Страницы: 1
RSS
Помогите дописать формулу DAX для накопительного итога с учетом фильтров по датам", накопительный итог в pivot с учетом фильтров в дате
 
Здравствуйте. Задача найти накопительный итог по дням (с учетом лет).
Массив данных по датам.

Пример массива (в исходники по датам):
Прирост участников группы 2015 год - 100
Прирост участников группы 2016 год - 300
Прирост участников группы 2017 год - 500

Что должно получиться:
2015 год - 100
2016 год - 400
2017 год - 900

Написал следующую формулу:

накопительно пробуем = CALCULATE([Прирост];
FILTER (
ALL('календарь');'календарь'[Дата].[День]<=2019)
)

Формула подсчитывает накопительно сразу за весь период, не могу понять, как фильтр настроить....
Кто сталкивался с такой проблемой?

'календарь' - это справочник с датами связал ее со всеми исходниками
 
 
Название поменял, но формулы в картинках не работают.
 
У меня версия power bi (январь 2019)
 
dmitri33333, поищите в поиске форума функцию EARLIER. Найдёте до фига примеров по интересующему вас вопросу. К сожалению, с телефона, больше ни чем помочь не могу.
Вот горшок пустой, он предмет простой...
 
Цитата
dmitri33333 написал:
'календарь'[Дата].[День]<=2019
Вас ничего не смущает выше?

Код
накопительно пробуем =
CALCULATE (
    [Прирост];
    FILTER ( ALL ( 'календарь' ); 'календарь'[Дата] <= MAX ( 'календарь'[Дата] ) )
)
F1 творит чудеса
 
Вернулся к этому вопросу. Попробовал сделать, как вы советуете.
Накопительно по тоталу ОК работает, но накопительно по годам не работает

накопительно пробуем = CALCULATE(
[Прирост];
FILTER ( ALL ( 'календарь' ); 'календарь' [Дата].[День] <= MAX (' календарь'[Дата].[День]  ) )
)
 
PooHkrd, спасибо за совет! Формулы действительно работают, если мне нужно посчитать итог, без дополнительных вычислений.

но у меня в исходники (скрин прилагаю), записи выглядят так
ДатаПараметр Значение
01.01.2019 Вошли в группу 9
01.01.2019 Вышли из группы 5
далее я мерой вычисляю прирост 4 (9-5)

и в этой мере нужно сделать накопительный итог.

Сделал вычисляемый столбец для накопительного итога,

Накопительный итог = CALCULATE([Вступившие]-[Вышедшие];
FILTER('пришедшие';EARLIER('пришедшие'[Дата])>='пришедшие'[Дата])
)

Проблемы в каждой дате теперь одинаковое число.
ДатаПараметрЗначение Накопительный итог
01.01.2019 Вошли в группу 9 5
01.01.2019 Вышли из группы 5 5
и потом взял максимум, но он не подходят. Так как берем значение не на дата указанную в фильтре, а максимальное значение за период

Максимальное = MAX('пришедшие'[Накопительный итог])

Но это не решение проблемы.
Теперь не могу найти формулу, чтобы показывало максимальное число на последнею дату в фильтре
 
dmitri33333, я бы на вашем месте, вместо того чтобы мешать значения "вступивших" и "вышедних" в одном столбце, разбил этот столбец на два, в которых отдельно проставлялись бы значения "вступивших" и "вышедших". Третьим столбцом можно сделать их разность. Либо использовать функцию addcolumns. А потом уже использовать формулу, которую вам предложили выше, только не в вычисляемом столбце, как вы это сделали, а сразу в мере. Так будет правильнее и удобнее с точки зрения построения модели данных.  
Изменено: ADimov - 24.03.2019 01:28:48
 
ADimov попробовал , как вы советуете. Пришлось сделать 2 таблицы и там отдельно сделать столбцы "Вступившие" и "Вышедшие". Если делать в одной таблице BI не дает, пишет циклическую ссылку. Следовательно вычисляемый столбец с приростом не получается прописать
 
dmitri33333, такого не должно быть. Вам нужно было удалить столбец "Накопительный итог". На этапе загрузки данных в модель - выделить столбец "Парам. №1" и нажать кнопку "Столбец сведения" на вкладке "Преобразование" (в PowerQuery это называется так). После этого у вас появятся столбцы с уникальными именами из столбца "Парам. №1", а в них будут соответствующие значения. Когда проделаете эту операцию - создайте меру той конструкции, которую вам рекомендовали, закидывайте её в сводную и всё будет считаться, как вам и нужно. Пример не могу приложить, т.к. нахожусь на работе...
Изменено: ADimov - 25.03.2019 10:43:04
 
dmitri33333, то ли лыжи не едут, то ли я ничего не понимаю
Цитата
Максим Зеленский написал:
Код
FILTER ( ALL ( 'календарь' ); 'календарь'[Дата] <= MAX ( 'календарь'[Дата] ) )
чувствуете разницу с:
Цитата
dmitri33333 написал:
Код
FILTER ( ALL ( 'календарь' ); 'календарь' [Дата].[День] <= MAX (' календарь'[Дата].[День]  ) )
Зачем вы .[День] добавили???
F1 творит чудеса
 
Добрый вечер.
Очень нужна помощь ...
Хочу показать данные за несколько прошлых лет по аналогичным месяцам.

У меня не получается настроить динамически последний (максимальный) год.
2020 год никак не убирается (((

MaxSelectedDateYear =
Year(
   CALCULATE(
       MAX(DimCalendar[Date])
   )
)

MaxAllSelectedDateYear =
Year(
   CALCULATE(
       MAX(DimCalendar[Date]),
       ALLSELECTED( DimCalendar)
   )
)
 
pelenika Петкевич, а какое отношение ваш вопрос имеет к наименованию данной темы? Где у вас про накопительный итог?
Создайте отдельную тему с соблюдением правил форум и приложите файл-пример Эксель или PBI, в котором можно увидеть структуру вашей модели, связи календаря с таблицами фактов и, главное, покажите что хотите получить в итоге, но не получается.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх