在 powerbi 中使用 percentile.exc 超出范围的百分位值
Out of range percentile values using percentile.exc in powerbi
我是 PowerBi 的新手,需要一些帮助来弄清楚如何使 percentile.exc 函数工作(我无法使用 percentile.inc)。
我系统地收到以下错误:百分比值应在 1/(N+1)..N/(N+1) 范围内,其中 N 是数据值的数量。
此代码的 objective 用于计算另一个计算列中给定比率的 3 个月滚动第 90 个百分位数。
如有任何帮助,我将不胜感激!
这是我到目前为止的结果:
3MonthsRolling_90thPercentile=
VAR current_date = Table1[Date]
VAR k = 0.9
VAR NumValues =
COUNT (Table1[Ratio] )
VAR LowerBound = 1 / ( NumValues + 1 )
VAR UpperBound = NumValues / ( NumValues + 1 )
RETURN
CALCULATE (
IF (AND ( PERCENTILE.EXC ( Table1[Ratio],0.9) >= LowerBound, PERCENTILE.EXC (Table1[Ratio],0.9) <= UpperBound ),PERCENTILE.EXC ( Table1[Ratio],0.9), BLANK()),
FILTER (
ALL (Table1 ),
Table1[Date]
>= DATE ( YEAR ( current_date ), MONTH ( current_date ) - 3, DAY ( current_date ) )
&& Table1[Date] <= current_date
)
)
如果 NumValues
小于 9,则 0.9 高于上限 NumValues / ( NumVales + 1 )
,因此 PERCENTILE.EXC ( Table1[Ratio], 0.9 )
将引发错误。
我认为您的措施更有意义,如下所示:
3MonthsRolling_90thPercentile =
VAR current_date = Table1[Date]
VAR DateFiltered =
FILTER (
ALL ( Table1 ),
Table1[Date]
>= DATE (
YEAR ( current_date ),
MONTH ( current_date ) - 3,
DAY ( current_date )
)
&& Table1[Date] <= current_date
)
VAR k = 0.9
VAR NumValues = CALCULATE ( COUNT ( Table1[Ratio] ), DateFiltered )
VAR LowerBound = 1 / ( NumValues + 1 )
VAR UpperBound = NumValues / ( NumValues + 1 )
RETURN
IF (
AND ( k >= LowerBound, k <= UpperBound ),
CALCULATE ( PERCENTILE.EXC ( Table1[Ratio], k ), DateFiltered )
)
请注意,我将 k
与界限进行比较,而不是 k
百分位数。
我是 PowerBi 的新手,需要一些帮助来弄清楚如何使 percentile.exc 函数工作(我无法使用 percentile.inc)。
我系统地收到以下错误:百分比值应在 1/(N+1)..N/(N+1) 范围内,其中 N 是数据值的数量。
此代码的 objective 用于计算另一个计算列中给定比率的 3 个月滚动第 90 个百分位数。
如有任何帮助,我将不胜感激!
这是我到目前为止的结果:
3MonthsRolling_90thPercentile=
VAR current_date = Table1[Date]
VAR k = 0.9
VAR NumValues =
COUNT (Table1[Ratio] )
VAR LowerBound = 1 / ( NumValues + 1 )
VAR UpperBound = NumValues / ( NumValues + 1 )
RETURN
CALCULATE (
IF (AND ( PERCENTILE.EXC ( Table1[Ratio],0.9) >= LowerBound, PERCENTILE.EXC (Table1[Ratio],0.9) <= UpperBound ),PERCENTILE.EXC ( Table1[Ratio],0.9), BLANK()),
FILTER (
ALL (Table1 ),
Table1[Date]
>= DATE ( YEAR ( current_date ), MONTH ( current_date ) - 3, DAY ( current_date ) )
&& Table1[Date] <= current_date
)
)
如果 NumValues
小于 9,则 0.9 高于上限 NumValues / ( NumVales + 1 )
,因此 PERCENTILE.EXC ( Table1[Ratio], 0.9 )
将引发错误。
我认为您的措施更有意义,如下所示:
3MonthsRolling_90thPercentile =
VAR current_date = Table1[Date]
VAR DateFiltered =
FILTER (
ALL ( Table1 ),
Table1[Date]
>= DATE (
YEAR ( current_date ),
MONTH ( current_date ) - 3,
DAY ( current_date )
)
&& Table1[Date] <= current_date
)
VAR k = 0.9
VAR NumValues = CALCULATE ( COUNT ( Table1[Ratio] ), DateFiltered )
VAR LowerBound = 1 / ( NumValues + 1 )
VAR UpperBound = NumValues / ( NumValues + 1 )
RETURN
IF (
AND ( k >= LowerBound, k <= UpperBound ),
CALCULATE ( PERCENTILE.EXC ( Table1[Ratio], k ), DateFiltered )
)
请注意,我将 k
与界限进行比较,而不是 k
百分位数。