PowerBI DAX用IF逻辑实现无计算列过滤统计活跃SKU数量
无辅助列DAX度量值实现方案
优化后完整代码
Number of Active SKU = CALCULATE( COUNTROWS('Item'), -- 直接内嵌原3个辅助列的判断逻辑 ( 'Item'[SKULevel] IN {"1","2","3","4","5","6"} && 'Item'[SKUCode] IN {"A","B","C","D","G"} ) || 'Item'[SKUCode] = "K", FILTER('SKUInfo', SKUInfo[StockKeeping] = "1"), NOT('Item'[SKUStatus] IN { "P", "U", "X", "Z" }) )
逻辑与优化说明
- 原
HelpColumn3 = 1的判断本质是满足两个互斥条件的任意一项:要么SKU等级为1-6且SKU编码为A/B/C/D/G,要么SKU编码为K。将该逻辑直接作为CALCULATE的筛选条件,即可完全替代3个预计算辅助列,计算结果与原有方案完全一致 - 移除100万行级别的预计算列后,可有效降低模型存储体积,减少数据全量/增量刷新的耗时
- 该写法使用布尔类型筛选条件,相比原方案中FILTER迭代整Item表的性能更优,更适配大数据量计算场景
- 原有SKU状态排除、SKU库存表关联的筛选逻辑完全保留,无逻辑偏差
内容的提问来源于stack exchange,提问作者Frederik Forum
相关产品推荐
相关产品推荐

