BI技巧丨百分位计算

2022-11-05 18:42:22 浏览数 (3)

百分位计算

百分位数据计算,可以说是日常计算中比较常见的需求,通常会用于价格段位分析使用,而在PowerBI中,用于百分位计算的函数一共有四个。

语法

代码语言:txt复制
PERCENTILE.EXC(<column>, <k>) 
PERCENTILE.INC(<column>, <k>)
PERCENTILEX.EXC(<table>, <expression>, <k>) 
PERCENTILEX.INC(<table>, <expression>, <k>)

说明

1.PERCENTILE与PERCENTILEX的区别,与SUM和SUMX的区别是一样的,一个是聚合函数,一个是迭代函数。

2.INC指的是Inclusive,即包含的意思,EXC指的是exclusive,即不包含的意思,因此INC和EXC的区别在于,一个包含两端值,一个不包含两端值。

3.K代表百分位,介于0~1之间。

4.对于INC,若K不是1/(N-1)的倍数,则函数会进行插值,确认第K个百分位的值。

5.对于EXC,若K不是1/(N 1)的倍数,则函数会进行插值,确认第K个百分位的值。

返回结果

例子

案例数据如下:

将其导入到PowerBI中,通过表格,展示如下:

构建基础度量值:

代码语言:txt复制
001.SalesAmount =
SUM ( Fact_Sales[SalesAmount] )

例子1:

使用PERCENTILE.INC计算80%分位值。

代码语言:txt复制
002.Percentileinc =
PERCENTILE.INC ( Fact_Sales[SalesAmount], 0.8 )

结果如下:

例子2:

使用PERCENTILE.EXC计算50%分位值。

代码语言:txt复制
003.Percentileexc =
PERCENTILE.EXC ( Fact_Sales[SalesAmount], 0.5 )

结果如下:

例子3:

使用PERCENTILEX.INC计算80%分位值。

代码语言:txt复制
004.PercentileInc =
VAR PercentileInc =
    PERCENTILEX.INC ( 'Fact_Sales', [001.SalesAmount], 0.8 )
VAR Result =
    SUMX ( VALUES ( Fact_Sales[ProductName] ), PercentileInc )
RETURN
    Result

结果如下:

例子4:

使用PERCENTILEX.EXC计算50%分位值。

代码语言:txt复制
005.PercentileExc =
VAR PercentileExc =
    PERCENTILEX.EXC ( 'Fact_Sales', [001.SalesAmount], 0.5 )
VAR Result =
    SUMX ( VALUES ( Fact_Sales[ProductName] ), PercentileExc )
RETURN
    Result

结果如下:

例子5:

使用PERCENTILEX.INC计算分组聚合后80%分位值。

代码语言:txt复制
006.PercentileIncForGroup =
VAR SumOfGroup =
    ADDCOLUMNS (
        ALL ( Fact_Sales[ProductName] ),
        "@SalesAmount", [001.SalesAmount]
    )
VAR Result =
    PERCENTILEX.INC ( SumOfGroup, [@SalesAmount], 0.8 )
RETURN
    Result

结果如下:

例子6:

使用PERCENTILEX.EXC计算分组聚合后20%分位值。

代码语言:txt复制
007.PercentileExcForGroup =
VAR SumOfGroup =
    ADDCOLUMNS (
        ALL ( Fact_Sales[ProductName] ),
        "@SalesAmount", [001.SalesAmount]
    )
VAR Result =
    PERCENTILEX.EXC ( SumOfGroup, [@SalesAmount], 0.2 )
RETURN
    Result

结果如下:

这里是白茶,一个PowerBI的初学者。

0 人点赞