Power BI - накопленная сумма - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно показать совокупное значение суммы в некоторых столбцах, но мне нужно также объединить совокупную сумму с некоторыми фильтрами.

У меня есть несколько фильтров, которые можно применить (например, Город, Отдел,идентификатор и период времени).Например, этот код работает:

Cumulative_sum = CALCULATE( SUM(Table[ColumnA]) + SUM(Table[ColumnB]) + SUM(Table[ColumnC]); FILTER(ALL(Table(TIME_PERIOD); Table[TIME_PERIOD] <= MAX (Table[TIME_PERIOD])))

Когда я пытался добавить фильтр, мое кодирование либо возвращает ошибку, либо возвращает накопленную сумму, начиная с отфильтрованного периода времени: например, допустим, у меня естьзначение 10 в январе, феврале, марте и апреле для города A, департамент B. Если я выберу отображение значений за март и апрель, оно должно отобразить 30 и 40. Однако на текущем графике показано совокупное значениеОтфильтрованный период времени (и будет отображаться 10 и 20).

Вот что я пытаюсь:

   Cumulative_sum = CALCULATE( SUM(TableA[ColumnA]) + SUM(TableA[ColumnB]) + SUM(TableA[ColumnC]); FILTER(ALL(TableB(TIME_PERIOD); TableB[TIME_PERIOD] <= MAX (TableB[TIME_PERIOD])); FILTER(ALLSELECTED(TableA); TableA

[SITUATION] = "OK'))

Я пробовал использовать данные только из Таблицы A и пробовал использовать Таблицу B как ВремяПериодическая таблица независимая.В чем здесь моя ошибка?

1 Ответ

0 голосов
/ 06 июня 2018

Попробуйте:

Cumulative_sum =
    CALCULATE(
        SUM(Table[ColumnA]) + SUM(Table[ColumnB]) + SUM(Table[ColumnC]);
        FILTER(ALL(Table);
            Table[TIME_PERIOD] <= MAX(Table[TIME_PERIOD]) &&
            Table[SITUATION] = "OK"
            )
         )

ALL(Table) заставит меру игнорировать фильтр периода времени.

Чтобы сохранить дополнительные параметры, вы, вероятно, захотите использовать ALLEXCEPT.

Cumulative_sum =
    CALCULATE(
        SUM(Table[ColumnA]) + SUM(Table[ColumnB]) + SUM(Table[ColumnC]);
        FILTER(ALLEXCEPT(Table, Table[City], Table[Department], Table[ID]);
            Table[TIME_PERIOD] <= MAX(Table[TIME_PERIOD]) &&
            Table[SITUATION] = "OK"
            )
         )
...