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

DAX度量值修正:矩阵可视化中<5值的抑制问题

Power BI 矩阵<5值抑制与DSR规则实现方案

一、修复Number列的抑制度量值(Num_Suppress)

原度量值对Persons列无效的核心问题是未清除当前Sex列的筛选上下文,导致计算Male/Female值时受当前列筛选影响。修正后的DAX代码如下:

Num_Suppress = 
VAR CurrentYear = SELECTEDVALUE(HSUM_Results[Year]) -- 获取当前行的Year上下文
-- 清除Sex列筛选,计算当前Year下的Male/Female/Persons数值
VAR MaleValue = CALCULATE(SUM(HSUM_Results[Number]), 
                        REMOVEFILTERS(Sex_SortOrder[Sex]),
                        Sex_SortOrder[Sex] = "Male",
                        HSUM_Results[Year] = CurrentYear)
VAR FemaleValue = CALCULATE(SUM(HSUM_Results[Number]), 
                          REMOVEFILTERS(Sex_SortOrder[Sex]),
                          Sex_SortOrder[Sex] = "Female",
                          HSUM_Results[Year] = CurrentYear)
VAR PersonsValue = CALCULATE(SUM(HSUM_Results[Number]), 
                           REMOVEFILTERS(Sex_SortOrder[Sex]),
                           Sex_SortOrder[Sex] = "Persons",
                           HSUM_Results[Year] = CurrentYear)
-- 定义各列显示规则
VAR ShowMale = IF(MaleValue >= 5, MaleValue, "<5")
VAR ShowFemale = IF(FemaleValue >= 5, FemaleValue, "<5")
VAR ShowPersons = IF(MaleValue < 5 || FemaleValue < 5, BLANK(), PersonsValue)
RETURN
    SWITCH(SELECTEDVALUE(Sex_SortOrder[Sex]),
        "Male", ShowMale,
        "Female", ShowFemale,
        "Persons", ShowPersons,
        BLANK()
    )

关键修正点:

  • 使用REMOVEFILTERS(Sex_SortOrder[Sex])清除当前列的Sex筛选,确保在当前Year上下文下正确计算所有Sex的数值
  • 将ShowPersons的返回值从"-"改为BLANK(),符合需求中“显示空白”的要求
  • 直接用数值判断(MaleValue <5)替代字符串比较,避免类型转换带来的错误

二、实现DSR列的抑制规则

按照需求创建DSR的度量值DSR_Suppress,规则为:

  • Male/Female:记录数<5时显示空白,否则显示实际DSR值
  • Persons:Male或Female任一记录数<5时显示空白,否则显示实际DSR值
DSR_Suppress = 
VAR CurrentYear = SELECTEDVALUE(HSUM_Results[Year])
-- 计算当前Year下Male/Female的记录数
VAR MaleCount = CALCULATE(COUNTROWS(HSUM_Results), 
                        REMOVEFILTERS(Sex_SortOrder[Sex]),
                        Sex_SortOrder[Sex] = "Male",
                        HSUM_Results[Year] = CurrentYear)
VAR FemaleCount = CALCULATE(COUNTROWS(HSUM_Results), 
                          REMOVEFILTERS(Sex_SortOrder[Sex]),
                          Sex_SortOrder[Sex] = "Female",
                          HSUM_Results[Year] = CurrentYear)
-- 计算当前上下文的DSR值(根据实际DSR字段调整聚合方式)
VAR CurrentDSR = CALCULATE(SUM(HSUM_Results[DSR]), 
                          REMOVEFILTERS(Sex_SortOrder[Sex]),
                          Sex_SortOrder[Sex] = SELECTEDVALUE(Sex_SortOrder[Sex]),
                          HSUM_Results[Year] = CurrentYear)
-- 定义各列显示规则
VAR ShowMaleDSR = IF(MaleCount >=5, CurrentDSR, BLANK())
VAR ShowFemaleDSR = IF(FemaleCount >=5, CurrentDSR, BLANK())
VAR ShowPersonsDSR = IF(MaleCount >=5 && FemaleCount >=5, CurrentDSR, BLANK())
RETURN
    SWITCH(SELECTEDVALUE(Sex_SortOrder[Sex]),
        "Male", ShowMaleDSR,
        "Female", ShowFemaleDSR,
        "Persons", ShowPersonsDSR,
        BLANK()
    )

注意事项:

  • 若DSR字段为非聚合的直接值,需调整CurrentDSR的计算逻辑以匹配业务需求
  • 确认HSUM_Results表中包含Year、Sex、Number、DSR等必要字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:19:55