Power BI矩阵空白单元格替换为0的实现方案咨询
解决Power BI矩阵空白替换为0的问题
问题根源
你创建的Sell计算表通过FILTER('Table', 'Table'[Deal] = "Sell")仅保留了Deal为"Sell"的行,当矩阵中的Counterparty与列维度(如BAR、BUZZ)组合在Sell表中无对应数据时,该单元格的上下文不存在匹配行,导致SUM(Sell[Value])并非返回空白,而是度量值未在该上下文下执行计算,因此你之前的+0或ISBLANK判断无法生效。
可行解决方法
方法1:直接基于原表创建度量值(推荐)
无需预先创建Sell计算表,直接在原表Table上创建带筛选的度量值,确保所有维度组合都能被覆盖:
Sell Value = COALESCE( CALCULATE(SUM('Table'[Value]), 'Table'[Deal] = "Sell"), 0 )
将这个度量值设置为矩阵的Values参数即可实现空白转0的效果。
方法2:保留计算表的情况下修改度量值
如果必须使用Sell计算表,需修改度量值以强制覆盖所有维度上下文:
Value = VAR TargetCounterparty = SELECTEDVALUE(Sell[Counterparty]) VAR TargetCategory = SELECTEDVALUE(Sell[你的列维度名]) // 替换为矩阵列对应的字段名,如BAR/BUZZ所属的列 VAR CurrentSum = SUMX( FILTER(Sell, Sell[Counterparty] = TargetCounterparty && Sell[你的列维度名] = TargetCategory), Sell[Value] ) RETURN COALESCE(CurrentSum, 0)
或更简洁的写法:
Value = COALESCE( CALCULATE( SUM(Sell[Value]), ALLSELECTED(Sell[Counterparty]), ALLSELECTED(Sell[你的列维度名]) ), 0 )
说明
方法1更优,因为计算表会占用额外内存,且度量值的方式能更灵活地适配矩阵的上下文逻辑,避免因计算表的筛选范围导致的维度缺失问题。
内容的提问来源于stack exchange,提问作者iBeMeltin
相关产品推荐
相关产品推荐

