#powerbi #dax #ssas
Вопрос:
Мне нужно рассчитать парето, но на графике мы видим только 10 лучших элементов, но парето должно быть рассчитано из всех элементов в выбранный период даты. Так, например, если у меня есть дата 1.10.2021, и у меня есть 20 значений для этой даты. Я могу отобразить только 10 в powerbi, как я могу игнорировать фильтр для TOPN10 в dax и вычислять парето из 20 значений (на графике он не будет показывать 100 процентов для вычисления Парето)
Я публикую фильтры от PowerBI
DEFINE
VAR __DS0FilterTable =
TREATAS({FALSE,
BLANK()}, 'Breakdown'[Less then 30 sec])
VAR __DS0FilterTable2 =
TREATAS({TRUE}, 'Breakdown'[IsReportedInterval])
VAR __DS0FilterTable3 =
TREATAS({"Reported"}, 'Reported Filter'[Reported])
VAR __DS0FilterTable4 =
TREATAS({DATE(2021, 10, 1)}, 'Date'[Date])
VAR __DS0FilterTable5 =
TREATAS({"Morning"}, 'Shift'[Shift Name])
VAR __SQDS0BodyLimited =
TOPN(10, __SQDS0Core, [Breakdown__min_], 0)
Вот расчет Парето — Если я использую ALLSELECTED, парето рассчитывается из строк, отфильтрованных фильтрами powerbi, когда я использую ВСЕ, он удалит все фильтры, что неверно, потому что я получу сумму всех строк, исключая фильтр даты. Есть какие-нибудь идеи ?
Pareto Breakdown Description:=
VAR TotalQuantity =
CALCULATE ( SUM ( Breakdown[DurationSeconds] ), ALLSELECTED( Breakdown ) )
VAR AllBreakdowns =
SUM ( Breakdown[DurationSeconds] )
VAR SummarizedTable =
SUMMARIZE (
ALLSELECTED ( Breakdown ),
'Breakdown'[Description SK],
"Amount", SUM ( Breakdown[DurationSeconds] )
)
VAR CumulativeSum =
SUMX ( FILTER ( SummarizedTable, [Amount] >= AllBreakdowns ), [Amount] )
RETURN
DIVIDE( CumulativeSum, TotalQuantity )