Power BI中DAX求和度量值异常致条件格式失效问题求助
问题解决:Power BI按零件编码全局库存设置条件格式
你的核心问题是计算列基于行上下文(单位置+零件),导致库存计算仅针对当前位置,而非零件全局总量,同时原度量值的筛选逻辑未正确排除位置影响。以下是具体修正方案:
1. 重构零件全局库存度量值
替换原Quantity Sum,确保计算每个零件的总库存,不受位置字段筛选影响:
Total Quantity by Part = CALCULATE( SUM('FIN IC_BIN_DETAIL_STATUS'[Quantity]), ALLEXCEPT('FIN IC_BIN_DETAIL_STATUS', 'FIN IC_BIN_DETAIL_STATUS'[Part Code]) )
ALLEXCEPT的作用是保留Part Code的筛选上下文,移除其他所有列(如位置)的筛选,无论表格是否展示位置,都会返回该零件的全局总库存。
2. 创建动态颜色判断度量值
无需使用计算列,直接用度量值完成颜色判断,适配报表的动态筛选:
OOS Color = VAR TotalQty = [Total Quantity by Part] VAR CurrentPart = MAX('FIN IC_BIN_DETAIL_STATUS'[Part Code]) RETURN SWITCH( TRUE(), CurrentPart = "500107" && TotalQty >= 401, "Green", CurrentPart = "500107" && TotalQty >= 201, "Yellow", CurrentPart = "500107" && TotalQty <= 200, "Red", CurrentPart = "500108" && TotalQty >= 151, "Green", CurrentPart = "500108" && TotalQty >= 51, "Yellow", CurrentPart = "500108" && TotalQty <= 50, "Red", CurrentPart = "500233" && TotalQty >= 151, "Green", CurrentPart = "500233" && TotalQty >= 51, "Yellow", CurrentPart = "500233" && TotalQty <= 50, "Red", "Blue" )
通过变量TotalQty调用全局库存度量值,CurrentPart获取当前上下文的零件编码,逻辑清晰且动态响应报表筛选。
3. 配置条件格式
在表格列的条件格式设置中,选择**"字段值"**模式,直接关联OOS Color度量值,Power BI会自动根据返回的颜色字符串设置单元格样式。
优化建议(可选)
如果后续需要新增零件阈值,建议创建独立的Part Thresholds配置表(包含Part Code、Green Min、Yellow Min、Red Max列),通过LOOKUPVALUE关联,避免硬编码SWITCH,维护更高效:
OOS Color (优化版) = VAR TotalQty = [Total Quantity by Part] VAR CurrentPart = MAX('FIN IC_BIN_DETAIL_STATUS'[Part Code]) VAR GreenMin = LOOKUPVALUE('Part Thresholds'[Green Min], 'Part Thresholds'[Part Code], CurrentPart) VAR YellowMin = LOOKUPVALUE('Part Thresholds'[Yellow Min], 'Part Thresholds'[Part Code], CurrentPart) VAR RedMax = LOOKUPVALUE('Part Thresholds'[Red Max], 'Part Thresholds'[Part Code], CurrentPart) RETURN SWITCH( TRUE(), TotalQty >= GreenMin, "Green", TotalQty >= YellowMin, "Yellow", TotalQty <= RedMax, "Red", "Blue" )
内容的提问来源于stack exchange,提问作者Briana
相关产品推荐
相关产品推荐

