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

PowerBI中计算关联列空白值数量的计算列问题

解决PowerBI中统计指定表各列空白值数量的问题

原公式的问题

你写的DAX公式逻辑有误:ISBLANK('Table2'[Column_Name])是在判断Table2里的列名字符串本身是否空白,而不是判断Table1中对应列的单元格值是否空白,这就导致筛选条件永远不成立,结果自然全为空。

解决方案一:DAX计算列

在Table2中创建计算列,通过动态引用Table1的对应列来统计空白值:

公式1(COUNTROWS+FILTER)

No_of_blanks = 
VAR CurrentCol = 'Table2'[Column_Name]
RETURN
COUNTROWS(
    FILTER(
        'Table1',
        ISBLANK( SELECTCOLUMNS('Table1', "TargetCol", [@CurrentCol])[TargetCol] )
    )
)

公式2(SUMX简化版)

No_of_blanks = 
VAR TargetColName = 'Table2'[Column_Name]
RETURN
SUMX(
    'Table1',
    INT( ISBLANK( SELECTCOLUMNS('Table1', "Val", [@TargetColName])[Val] ) )
)

原理说明:

  • VAR定义当前行的列名字符串
  • SELECTCOLUMNS('Table1', "Val", [@TargetColName])根据字符串动态提取Table1的对应列
  • ISBLANK判断该列单元格是否空白,INT将布尔值转成1(空白)或0(非空白),SUMX求和得到总空白数

解决方案二:PowerQuery直接生成统计结果

如果不想用DAX,可直接在PowerQuery中完成统计,步骤更简单:

  1. 进入PowerQuery编辑器,加载Table1
  2. 点击转换选项卡 → 转置,将原表的列转为行
  3. 添加自定义列,输入公式:
    List.Count(List.Select([Column1], each _ = null))
    
  4. 重命名列:将第一列改为Column_Name,自定义列改为No_of_blanks
  5. 关闭并上载到数据模型,直接得到统计完成的表

注意事项

  • 确保Table2的Column_Name列值与Table1的列名完全一致(包括大小写、特殊字符),否则动态引用会失败
  • 若Table1是实时连接/DirectQuery模式,DAX动态引用可能有性能损耗,优先选择PowerQuery方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:20:16