首页 > 解决方案 > 使用过滤器计算四分位数 - POWER BI

问题描述

我正在尝试在 Power BI 中组合一个 DAX 语句,以根据某些过滤器计算表的四分位数。然而,我做了一个通用的句子,我无法为它分配过滤器。表结构为:

露营 管理 团体 id_oper name_oper nom_sup 门票
收敛的 博技术 收敛的 0000000 操作员1 主管1 500
收敛的 博技术 收敛的 11111111 操作员2 主管1 200
收敛的 博技术 收敛的 22222222 操作员3 主管1 80
收敛的 博技术 收敛的 33333333 操作员4 主管1 300
德斯帕乔 博德斯帕乔 平均 44444444 操作员5 主管2 1500
德斯帕乔 博德斯帕乔 平均 55555555 操作员6 主管2 500
德斯帕乔 博德斯帕乔 平均 66666666 操作员7 主管2 30
德斯帕乔 博德斯帕乔 平均 77777777 操作员8 主管2 1000
多技能 博规定 多技能 88888888 操作员9 主管3 20
多技能 博规定 多技能 99999999 操作员10 主管3 5
多技能 博规定 多技能 12345678 操作员11 主管3 80
多技能 博规定 多技能 87654321 操作员12 主管3 3

我正在使用的 Power BI 查询是这样的:

Quantile = 
IF(TBL_CUARTIL[tickets]<= PERCENTILE.EXC(TBL_CUARTIL[tickets],0.25),"Q4",
IF(AND(TBL_CUARTIL[tickets]> PERCENTILE.EXC(TBL_CUARTIL[tickets],0.25),TBL_CUARTIL[tickets]<= PERCENTILE.EXC(TBL_CUARTIL[tickets],0.5)),"Q3",
IF(AND(TBL_CUARTIL[tickets]> PERCENTILE.EXC(TBL_CUARTIL[tickets],0.5),TBL_CUARTIL[tickets]<= PERCENTILE.EXC(TBL_CUARTIL[tickets],0.75)),"Q2",
IF(TBL_CUARTIL[tickets]> PERCENTILE.EXC(TBL_CUARTIL[tickets],0.75),"Q1"))))

该查询按运算符计算四分位数,它可以正常工作,但它会根据记录总数计算它们,我想知道如何计算相同但使用数据过滤器,例如活动列的过滤器。

感谢您对这个问题的帮助,我希望我已经解释了......非常感谢

标签: powerbidax

解决方案


使用新度量:

Quantile=
var cur_val = max(TBL_CUARTIL[tickets])  
return IF(cur_val< PERCENTILEX.EXC(ALLSELECTED(TBL_CUARTIL), TBL_CUARTIL[tickets], 0.25),"Q4",
IF(AND(cur_val> PERCENTILEX.EXC(ALLSELECTED(TBL_CUARTIL), TBL_CUARTIL[tickets], 0.25),cur_val<= PERCENTILEX.EXC(ALLSELECTED(TBL_CUARTIL), TBL_CUARTIL[tickets], 0.5)),"Q3",
IF(AND(cur_val> PERCENTILEX.EXC(ALLSELECTED(TBL_CUARTIL), TBL_CUARTIL[tickets], 0.5),cur_val<= PERCENTILEX.EXC(ALLSELECTED(TBL_CUARTIL), TBL_CUARTIL[tickets], 0.75)),"Q2",
IF(cur_val> PERCENTILEX.EXC(ALLSELECTED(TBL_CUARTIL), TBL_CUARTIL[tickets], 0.75),"Q1"))))

推荐阅读