powerbi - 在 powerbi 中使用 percentile.exc 超出范围百分位值
问题描述
我是 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
)
)
解决方案
如果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
-percentile。
推荐阅读
- python-3.x - 更改从 print() 打印日期时间对象的方式?
- sql - DB2 SQL 将 IF ELSE 条件视为 DDL 语句?
- python - 如何测试两个熊猫分类系列是否仅在类别标签上有所不同
- javascript - Backstop JS - 在视图中的元素之后截取屏幕截图
- google-bigquery - 如果标准 SQL 不提供 _PARTITIONTIME 字段,如何在 BigQuery 中查询流式缓冲区
- c# - 查找并替换所有以 # 开头的单词并将带有标签的文本包装在 HTML 中
- python - Python - 以所需格式转置数据
- c# - 使用容器 url 上传文件 azure blob 存储
- docker - 如何记录对弹性搜索容器的所有查询?
- azure - B2C 发布范围 - “未提供标识符 URI”