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

DAX实现基于lookup表所有distinct月份过滤事实表聚合计算

优化后的DAX度量值

Measure = 
VAR _monthsToCheck = 12
// 计算当前site+service组合下的去重月份数,仅清除月份维度的筛选
VAR _uniqueMonthCnt = CALCULATE (
    DISTINCTCOUNT ( 'key'[month] ),
    REMOVEFILTERS ( 'key'[month] )
)
// 仅月份数等于12的组合返回val求和结果,否则返回空
VAR _result = IF (
    _uniqueMonthCnt = _monthsToCheck,
    SUM ( 'fact'[val] ),
    BLANK()
)
RETURN _result

原度量值问题说明

  1. 矩阵维度取自key表,但原度量值基于fact表做聚合,fact表无数据的月份组合不会被纳入统计,导致明细行计算逻辑异常
  2. 原写法临时表在月份明细行上下文仅包含单月记录,嵌套CALCULATE的筛选上下文传递会出现逻辑偏差,无法统一适配明细、汇总层级的计算要求

优化逻辑说明

  • 基于维度表key计算去重月份数,REMOVEFILTERS('key'[month])仅清除月份筛选,保留site、service的上下文,保证无论在明细还是汇总层级,判断的都是当前site+service组合的全年月份数
  • 依托key表到fact表的一对多筛选关系,SUM('fact'[val])会自动继承当前行的维度筛选,明细行自动匹配对应月份的交易汇总值,汇总行自动聚合全年数据,完全适配矩阵的多层级展示要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:39:01