使用DAX计算条件度量值new slot的累计求和不生效问题求助
问题原因
你当前的累计公式失效核心是度量值的上下文冲突导致:[new slot]本身依赖当前行上下文的gap值做判断,而你用ALLEXCEPT清除月份筛选后,gap的判断会作用在所有小于等于当前月份的数据集整体上,而非先逐行计算每个月的new slot再累加,所以得到的结果不符合预期。原来slot累计逻辑正常,是因为slot不需要逐行做条件判断,清除上下文后直接聚合即可得到正确结果。
修复方案
改用SUMX迭代每个符合条件的月份,逐行计算new slot后再求和即可,参考DAX如下:
new slot 累计 = VAR 当前最大月份 = MAX('table'[month]) RETURN SUMX( FILTER( ALLEXCEPT('table', 'table'[Product Family]), 'table'[month] <= 当前最大月份 ), // 逐行计算当月new slot,gap如果是物理列可直接替换为'table'[gap] IF([gap] < 0, 0, [slot]) )
补充说明
如果gap是表中的物理列而非度量值,直接替换为列引用'table'[gap]即可,能避免额外的上下文转换,提升运算效率。
内容的提问来源于stack exchange,提问作者kumarb
相关产品推荐
相关产品推荐

