Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在powerbi中使用percentile.exc超出范围的百分位值_Powerbi_Dax_Percentile - Fatal编程技术网

在powerbi中使用percentile.exc超出范围的百分位值

在powerbi中使用percentile.exc超出范围的百分位值,powerbi,dax,percentile,Powerbi,Dax,Percentile,我是PowerBi新手,需要一些帮助来弄清楚如何使percentile.exc函数工作(我不能使用percentile.inc) 我系统地收到以下错误:百分位值应在1/(N+1)…N/(N+1)范围内,其中N是数据值的数量 该代码的目标是在另一计算列中计算给定比率的3个月滚动90% 我将非常感谢任何帮助 这就是我到目前为止得出的结论: 3MonthsRolling_90thPercentile= VAR current_date = Table1[Date] VAR k = 0.9 VAR N

我是PowerBi新手,需要一些帮助来弄清楚如何使percentile.exc函数工作(我不能使用percentile.inc)

我系统地收到以下错误:百分位值应在1/(N+1)…N/(N+1)范围内,其中N是数据值的数量

该代码的目标是在另一计算列中计算给定比率的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
)
)
3个月滚动百分比=
VAR当前日期=表1[日期]
VAR k=0.9
VAR数值=
计数(表1[比率])
VAR LowerBound=1/(数值+1)
VAR上限=NumValues/(NumValues+1)
返回
算计(
如果(和(PERCENTILE.EXC(表1[比率],0.9)>=下限,PERCENTILE.EXC(表1[比率],0.9)=日期(年(当前日期),月(当前日期)-3,天(当前日期))

&&表1[日期]如果
NumValues
小于9英寸,则0.9高于上限
NumValues/(NumVales+1)
,因此
PERCENTILE.EXC(表1[比率],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 )
    )
3个月滚动\u第90百分位=
VAR当前日期=表1[日期]
VAR数据过滤=
滤器(
全部(表1),
表1[日期]
>=日期(
年份(当前日期),
月份(当前_日期)-3,
日期(当前_日期)
)

&&Table1[Date]=LowerBound,k非常感谢您的帮助,我看到它更有意义,但是当我更改它时,我仍然得到错误:“百分位值应该在1/(N+1)…N/(N+1)范围内,其中N是数据值的数量。”遗憾的是,我无法分享数据,因为它是我公司的..嗯。我想问题可能是您的
NumValues
变量可能与CALCULATE中实际使用的变量不同,因为它会向下过滤到特定的日期范围,该范围的值可能比整个表的值要少。我会编辑我的答案。这就像c谢谢你!!