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

Power BI表格合计行显示单值而非列总和问题求助

Power BI 总资产列合计行显示异常问题

问题详情

  • 表格中「总资产」列的合计行未显示列总和,仅展示某一行的数值(示例中为第二行的1,464)
  • 对应DAX度量值:
Bank Balance Total Assets = 
VAR TargetDate = [Latest Date Call Report] -- 返回要报告的日期
RETURN
 CALCULATE(
    FIRSTNONBLANK(VALUES(balance_sheet[TotalAssets]),1),
    balance_sheet[RPT_DATE] = TargetDate
) / 1000 
  • 业务场景:该列用于展示特定日期下银行资产负债表的总资产,表格呈现特定筛选条件下某组内所有银行的数据
  • 补充:已提供复现问题的样本文件

问题原因

当前度量值使用FIRSTNONBLANK函数,在合计行的筛选上下文(无单个银行筛选)中,VALUES(balance_sheet[TotalAssets])会返回目标日期下所有银行的总资产值,FIRSTNONBLANK会直接取其中第一个非空值返回,而非对所有值求和,导致合计行显示单行数据。

解决方案

通过ISINSCOPE函数区分明细行与合计行的筛选上下文,分别返回对应结果:明细行取单个银行的总资产,合计行对所有银行的总资产求和。修改后的DAX代码如下:

Bank Balance Total Assets = 
VAR TargetDate = [Latest Date Call Report]
-- 单个银行的总资产取值逻辑
VAR BankLevelAssets = 
    CALCULATE(
        FIRSTNONBLANK(VALUES(balance_sheet[TotalAssets]),1),
        balance_sheet[RPT_DATE] = TargetDate
    )
-- 所有银行的总资产求和逻辑
VAR TotalAssets = 
    CALCULATE(
        SUM(balance_sheet[TotalAssets]),
        balance_sheet[RPT_DATE] = TargetDate
    )
RETURN
    IF(
        ISINSCOPE(balance_sheet[BankID]), -- 替换为你的银行唯一标识列名(如银行代码、名称)
        BankLevelAssets / 1000,
        TotalAssets / 1000
    )

关键说明

  • ISINSCOPE(balance_sheet[BankID]):用于判断当前是否处于单个银行的筛选上下文(即明细行),需将BankID替换为你数据模型中代表银行唯一标识的列
  • 明细行保留原有的FIRSTNONBLANK逻辑,确保单个银行在目标日期的总资产取值准确
  • 合计行使用SUM函数对符合条件的所有银行总资产求和,得到正确的合计值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 20:37:40