Как рассчитать сумму стоимости за последние 6 спринтов с помощью DAX - PullRequest
0 голосов
/ 06 ноября 2018

Проблема:
Мне нужна вычисленная мера в DAX, которая суммирует столбец Значение для последних 6 спринтов. Я базирую последние 6 спринтов на DimSprintEndDateKey в порядке убывания.

Структура таблицы в PowerBI

DAX, который я использую:

CALCULATE (
    SUM ( factSprint[Value] ),
    FILTER (
        ALL ( factSprint ),
        COUNTROWS (

        topn(6,

            FILTER (
                factSprint,
                EARLIEST( RELATED ( dimSprint[DimSprintEndDateKey] ) )
                    > RELATED ( dimSprint[DimSprintEndDateKey] )
            ),RELATED ( dimSprint[DimSprintEndDateKey] ), DESC


            )

        )
    )
)

1 Ответ

0 голосов
/ 06 ноября 2018

Я предполагаю, что отношения в ваших таблицах находятся между 'dimSprint'[dimSprintKey] и 'FactSprint'[dimSprintKey].

В таком случае эта мера может сработать для вас.

Total Value Last Six Sprints =
VAR endDateSprint =
    LOOKUPVALUE (
        'dimSprint'[dimSprintEndDateKey],
        'dimSprint'[dimSprintKey], SELECTEDVALUE ( 'FactSprint'[dimSprintKey] )
    )
VAR dimTableFiltered =
    FILTER ( 'dimSprint', 'dimSprint'[dimSprintEndDateKey] <= endDateSprint )
RETURN
    CALCULATE (
        SUM ( 'FactSprint'[Value] ),
        ALL ( 'FactSprint' ),
        TOPN ( 6, dimTableFiltered, [dimSprintEndDateKey], DESC )
    )

Используйте его на матрице визуального (или поворотного). Обязательно поместите 'FactSprint'[dimSprintKey] или 'FactSprint'[SprintPK] в строки и [Общая стоимость последних шести спринтов] в значения.

...