You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI DAX四分位数计算如何添加campaign等自定义过滤条件

问题根因

你当前使用的是预计算的计算列,计算列的结果在数据刷新时就已经固定,不会响应报表端的筛选器交互,也无法实现按指定字段分组计算。

解决方案

方案1:固定分组计算列(适合分组维度固定的场景)

如果需要按固定维度(如Campaing)分组,每组单独计算四分位数,可使用以下计算列代码:

Quantile_按分组计算 = 
VAR current_tickets = TBL_CUARTIL[tickets]
// ALLEXCEPT后参数为分组维度,可根据需要新增如management、group等字段
VAR group_range = ALLEXCEPT(TBL_CUARTIL, TBL_CUARTIL[Campaing])
VAR p25 = PERCENTILE.EXC(TBL_CUARTIL[tickets], 0.25, group_range)
VAR p50 = PERCENTILE.EXC(TBL_CUARTIL[tickets], 0.5, group_range)
VAR p75 = PERCENTILE.EXC(TBL_CUARTIL[tickets], 0.75, group_range)
RETURN
SWITCH(
    TRUE(),
    current_tickets <= p25, "Q4",
    current_tickets <= p50, "Q3",
    current_tickets <= p75, "Q2",
    "Q1"
)

特点:数据刷新时自动计算,分组维度固定,适合不需要动态调整筛选条件的场景。

方案2:动态响应筛选的度量值(适合需要自定义筛选的场景)

如果需要随报表筛选器(如按Campaing、supervisor筛选)动态调整计算范围,使用度量值实现:

Quantile_动态计算 = 
VAR current_tickets = SELECTEDVALUE(TBL_CUARTIL[tickets])
// 自动获取当前报表筛选器选中的所有数据范围
VAR filter_range = ALLSELECTED(TBL_CUARTIL)
VAR p25 = CALCULATE(PERCENTILE.EXC(TBL_CUARTIL[tickets], 0.25), filter_range)
VAR p50 = CALCULATE(PERCENTILE.EXC(TBL_CUARTIL[tickets], 0.5), filter_range)
VAR p75 = CALCULATE(PERCENTILE.EXC(TBL_CUARTIL[tickets], 0.75), filter_range)
RETURN
SWITCH(
    TRUE(),
    ISBLANK(current_tickets), BLANK(),
    current_tickets <= p25, "Q4",
    current_tickets <= p50, "Q3",
    current_tickets <= p75, "Q2",
    "Q1"
)

用法:将该度量值与算子ID、姓名、tickets等字段共同放入表格视觉对象中,报表端的任意筛选条件都会自动生效,重新计算当前筛选范围内的四分位数。

注意事项

  • PERCENTILE.EXC函数要求计算范围内的数据行数至少大于对应百分位的倒数,如计算0.25分位至少需要4行数据,否则会返回空值,可根据需要新增IFERROR逻辑处理异常。
  • 若需要调整固定分组的维度,只需修改方案1中ALLEXCEPT函数内的字段列表即可。

内容的提问来源于stack exchange,提问作者Agal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:24:04