如何在Fact表中创建度量值实现Fact起止日期内Dim日期对应值空缺补0
实现方案
直接在Fact表中新建以下度量值即可:
填充空缺值度量 = VAR 当前上下文日期 = MAX('Dim'[Date]) RETURN IF( AND(当前上下文日期 >= [fact_start_date], 当前上下文日期 <= [fact_end_date]), SUM('Fact'[Value]) + 0, BLANK() )
逻辑说明
- 先读取当前表格行对应的Dim表日期,判断是否落在Fact表的全局日期区间内
- 不在区间内的日期直接返回空值,表格视觉对象会自动过滤掉这部分记录,仅保留你需要的区间内的Dim日期
- 区间内的日期计算对应Fact表的Value合计,末尾加
+0的作用是把无匹配的空值强制转为0,实现空缺补0的需求
如果你的Fact表和Dim表没有建立日期字段的关联关系,可以使用更兼容的版本:
填充空缺值度量 = VAR 当前上下文日期 = MAX('Dim'[Date]) RETURN IF( AND(当前上下文日期 >= [fact_start_date], 当前上下文日期 <= [fact_end_date]), CALCULATE(SUM('Fact'[Value]), 'Fact'[Date] = 当前上下文日期) + 0, BLANK() )
使用方法
将Dim表的Date字段拖入表格视觉对象的行维度,再添加上述度量值,即可得到你给出的预期结果,全程无需新建任何表。
内容的提问来源于stack exchange,提问作者j.p
相关产品推荐
相关产品推荐

