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
相关产品推荐
相关产品推荐

