Как рассчитать промежуточный итог в матрице Power BI - PullRequest
2 голосов
/ 20 июня 2019

В матрице строки - MM-YY из таблицы dim_Calendar.Столбцы LossMMYY взяты из таблицы fact_Data.

Как получить кумулятивную сумму по столбцу LossMMYY и, возможно, заполнить пробелы?

enter image description here

Отношения:

enter image description here

Должно быть так:

enter image description here

Я пытался:

RunningTotal= CALCULATE(
                    PolicyNumberCount,
                    FILTER(
                        ALL(fact_Data[LossDate]),fact_Data[LossDate]<= MAX(dim_Date[Date].[Date])

Но, к сожалению, не работает.

Дляпо какой-то причине он все еще не работает правильно: .pbix файл:

https://www.dropbox.com/s/267m1r3rf98g86e/PRC%20Actuarial%20Report%20-%20Test.pbix?dl=0

                      )

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Сначала создайте другую таблицу, используя следующий DAX:

MMYY = 
SUMMARIZECOLUMNS (
    fact_Data[LossMMYY],
    "Index Column",
    VAR YearNumber =
        RIGHT ( VALUES ( fact_Data[LossMMYY] ), 2 ) + 2000
    VAR CurrentMonthName =
        LEFT ( VALUES ( fact_Data[LossMMYY] ), 3 )
    RETURN
        YearNumber
            & SWITCH (
                CurrentMonthName,
                "JAN", "01",
                "FEB", "02",
                "MAR", "03",
                "APR", "04",
                "MAY", "05",
                "JUN", "06",
                "JUL", "07",
                "AUG", "08",
                "SEP", "09",
                "OCT", "10",
                "NOV", "11",
                "DEC", "12"
            )
)

Сортировка [LossMMYY] по [индексному столбцу]

Затем добавьте еще один столбец в таблицу фактов, используя ту же логику:

Index Column = 
VAR YearNumber =
    RIGHT ( 'fact_Data'[LossMMYY], 2 ) + 2000
VAR CurrentMonthName =
    LEFT ( 'fact_Data'[LossMMYY], 3 )
RETURN YearNumber &
    SWITCH (
    CurrentMonthName,
    "JAN", "01",
    "FEB", "02",
    "MAR", "03",
    "APR", "04",
    "MAY", "05",
    "JUN", "06",
    "JUL", "07",
    "AUG", "08",
    "SEP", "09",
    "OCT", "10",
    "NOV", "11",
    "DEC", "12"
) 

Теперь у вас есть действительный индекс для сравнения дат. Теперь вы можете создать меру, используя следующий DAX:

Running Total =
VAR CurrentDate =
    MAX ( MMYY [Index Column] )
RETURN
    CALCULATE (
        SUM ( fact_Data[PolicyNumberCount] ),
        FILTER (
            ALL (fact_Data[Index Column] ),
            fact_Data[Index Column] <= CurrentDate
        )
    )

Использование нового показателя в параметре значений матрицы и нового поля 'MMYY' [LossMMYY] в параметре столбца приведет к следующему: enter image description here

oleg, это то, что я получаю при реализации моей логики в вашем .pbix enter image description here

1 голос
/ 20 июня 2019

enter image description here

Вы можете сделать это с помощью двух новых таблиц и этой формулы:

Count of x = 
VAR eDate = SELECTEDVALUE(EffectiveCalendar[MM-YY]) 
VAR lDate = MAX('LossCalendar'[Date]) 
RETURN 
CALCULATE(COUNT(fact_Data[PolicyNumberCount])
, FILTER(fact_Data, fact_Data[EffectiveMMYY] = eDate && 'fact_Data'[LossDate].[Date] <= lDate))

Новая таблица 1:

EffectiveCalendar = 
ADDCOLUMNS (
CALENDAR (MIN(fact_Data[EffectiveDate]),MAX(fact_Data[EffectiveDate])),
"DateAsInteger", FORMAT ( [Date], "YYYYMMDD" ),
"MonthAsInteger", FORMAT ( [Date], "YYYYMM" ),
"Year", YEAR ( [Date] ),
"Month Number", month([Date]),
"Year/Month", FORMAT ( [Date], "YYYY/MM" ),
"YearMonthShort", FORMAT ( [Date], "YYYY/mmm" ),
"MM-YY", FORMAT ( [Date], "MMM-YY" ),
"Month", FORMAT ( [Date], "mmm" ),
"MonthNameLong", FORMAT ( [Date], "mmmm" ),
"DayOfWeekNumber", WEEKDAY ( [Date] ),
"DayOfWeek", FORMAT ( [Date], "dddd" ),
"DayOfWeekShort", FORMAT ( [Date], "dddd" ),
"Quarter", "Q" & FORMAT ( [Date], "Q" ),
"YearQuarter", FORMAT ( [Date], "YYYY" ) & "/Q" & FORMAT ( [Date], "Q" )
)

Новый календарь 2:

LossCalendar = 
ADDCOLUMNS (
CALENDAR (MIN(fact_Data[LossDate]),MAX(fact_Data[LossDate])),
"DateAsInteger", FORMAT ( [Date], "YYYYMMDD" ),
"MonthAsInteger", FORMAT ( [Date], "YYYYMM" ),
"Year", YEAR ( [Date] ),
"Month Number", month([Date]),
"Year/Month", FORMAT ( [Date], "YYYY/MM" ),
"YearMonthShort", FORMAT ( [Date], "YYYY/mmm" ),
"MM-YY", FORMAT ( [Date], "MMM-YY" ),
"Month", FORMAT ( [Date], "mmm" ),
"MonthNameLong", FORMAT ( [Date], "mmmm" ),
"DayOfWeekNumber", WEEKDAY ( [Date] ),
"DayOfWeek", FORMAT ( [Date], "dddd" ),
"DayOfWeekShort", FORMAT ( [Date], "dddd" ),
"Quarter", "Q" & FORMAT ( [Date], "Q" ),
"YearQuarter", FORMAT ( [Date], "YYYY" ) & "/Q" & FORMAT ( [Date], "Q" )
)
...