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

PowerBI矩阵中非日期列累计值空白问题求助

解决PowerBI矩阵累计值空白问题

1. 构建独立维度表

  • 日期表:创建包含所有需显示日期的完整序列,摆脱对事实表日期的依赖(避免因事实表某天无数据导致日期缺失)。用DAX生成:

    日期表 = CALENDAR(DATE(2022,1,1), DATE(2023,12,31)) // 根据业务范围调整日期区间
    

    完成后将日期表与事实表的日期字段建立单向一对多关系。

  • con_seasoning维度表:提取事实表中所有有效的con_seasoning值,避免生成多余列。用DAX生成:

    con_seasoning维度表 = DISTINCT('事实表'[con_seasoning])
    

    将该表与事实表的con_seasoning字段建立单向一对多关系。

2. 修改累计度量值

替换原有度量值,确保即使当前日期+con_seasoning无基础数据,仍能计算到该日期的累计值:

累计计数 = 
VAR CurrentDate = MAX('日期表'[日期])
VAR SelectedSeasoning = SELECTEDVALUE('con_seasoning维度表'[con_seasoning])
// 计算到当前日期为止,该con_seasoning的总计数
VAR TotalCumulative = CALCULATE(
    COUNT('事实表'[contract_id]),
    FILTER(ALL('日期表'[日期]), '日期表'[日期] <= CurrentDate),
    '事实表'[con_seasoning] = SelectedSeasoning
)
// 若当前组合无数据,返回最近有数据的累计值,若需默认显示0可直接替换为0
RETURN 
IF(
    ISBLANK(TotalCumulative),
    CALCULATE(
        COUNT('事实表'[contract_id]),
        FILTER(ALL('日期表'[日期]), '日期表'[日期] <= LASTNONBLANK('日期表'[日期], [累计计数])),
        '事实表'[con_seasoning] = SelectedSeasoning
    ),
    TotalCumulative
)

3. 调整矩阵配置

  • 矩阵列区域使用con_seasoning维度表[con_seasoning],而非事实表的con_seasoning字段;
  • 矩阵行区域使用日期表[日期],而非事实表的日期字段;
  • 值区域采用修改后的累计计数度量值。

4. 修正Crossjoin多余行/列问题

若之前用Crossjoin生成组合,需将Crossjoin对象限定为独立维度表(日期表+con_seasoning维度表),仅生成所需的日期与con_seasoning组合,避免出现无关行/列:

完整组合表 = CROSSJOIN('日期表', 'con_seasoning维度表')

之后可将该表与事实表建立关系,或基于此表计算累计值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:16:26