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

应用品牌筛选时RANKX函数无法正常工作的技术求助

问题分析与解决

核心问题

你当前的RANKX公式使用ALL('OCS-daily-2018-2023'[brand])作为排名上下文,该函数会完全忽略品牌字段的筛选条件,导致即使仅选择3个品牌,排名依然基于全部品牌的总销售额计算,最终出现筛选后排名异常的情况。

修正后的DAX公式

将ALL替换为ALLSELECTED,它会保留当前的筛选上下文,仅在你选择的品牌范围内计算相对排名:

Rank (Total Sales) Brand = 
IF(
    HASONEVALUE('OCS-daily-2018-2023'[brand]),
    RANKX(
        ALLSELECTED('OCS-daily-2018-2023'[brand]),
        [Total Sales],
        ,
        DESC,
        Dense
    )
)

关键函数说明

  • ALL:清除指定列的所有筛选,返回该列的全部值集合
  • ALLSELECTED:保留用户当前的筛选选择,返回筛选后的列值集合,适用于计算筛选范围内的排名

问题背景

当对品牌字段应用筛选(仅选择Pure Sunfarms、Redecan和Good Supply)时,RANKX函数无法正常工作:

  • 无筛选条件时排名显示正常:
    无筛选时的排名
  • 应用品牌筛选后排名异常:
    筛选后的异常排名

原计算公式:

Rank (Total Sales) Brand = 
IF(
    HASONEVALUE(
        'OCS-daily-2018-2023'[brand]
    ),
    RANKX(
        ALL(
            'OCS-daily-2018-2023'[brand]
        ),
        [Total Sales],
        ,
        DESC,
        Dense
    )
)

数据模型:
数据模型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:45:27