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

PowerBI中如何基于ID总计数计算各列非空值占比

PowerBI 列占比计算与可视化实现方案

基础逻辑说明

你需要的两类占比计算都可以通过DAX度量值实现,核心逻辑为占比 = DIVIDE(分子计数, 分母总计数, 0),第三个参数0用于处理分母为空时返回空值避免报错。

具体实现步骤

1. 先创建基础分母度量值(总ID数量)

你需要先统计全表的唯一ID总数量作为公共分母:

总ID数 = COUNT('你的表名'[唯一ID列])

2. 对应你的两个需求分别实现

需求1:计算单列非空值占总ID数的百分比

你可以选择两种方式,适配不同的使用场景:

  • 方式一:单独为每列创建占比度量值(适合单独引用各列占比的场景)
    分别新建4个度量值即可:
    A列非空占比 = DIVIDE(COUNT('你的表名'[A]), [总ID数], 0)
    B列非空占比 = DIVIDE(COUNT('你的表名'[B]), [总ID数], 0)
    C列非空占比 = DIVIDE(COUNT('你的表名'[C]), [总ID数], 0)
    D列非空占比 = DIVIDE(COUNT('你的表名'[D]), [总ID数], 0)
    
    建好后选中所有度量值,在「列工具」选项卡中将格式设置为百分比,就能得到你需要的50%、25%、100%、75%的结果。
  • 方式二:逆透视列后创建通用度量值(适合直接做条形图的场景)
    不用新建多个度量值,只需在Power Query中做一次数据结构转换:
    1. 选中你的表,点击「转换数据」进入Power Query编辑器
    2. 选中唯一ID列,右键选择「逆透视其他列」,转换后会生成两个新列:「属性」(值为A/B/C/D)、「值」(对应原列的数值)
    3. 应用更改加载回数据模型,新建通用度量值:
    通用列非空占比 = DIVIDE(COUNT('转换后的表名'[值]), DISTINCTCOUNT('转换后的表名'[唯一ID列]), 0)
    

需求2:计算A列数值占B列总计数的百分比

直接用SUM统计A列总数值,COUNT统计B列非空总计数即可:

A数值占B总计数百分比 = DIVIDE(SUM('你的表名'[A]), COUNT('你的表名'[B]), 0)

3. 条形图可视化配置

如果用方式二转换后的数据,直接做如下配置即可:

  • 轴:拖入「属性」字段
  • 值:拖入「通用列非空占比」度量值,设置格式为百分比
    如果用方式一的单个度量值,直接把四个列的占比度量值全部拖入「值」区域即可自动生成四组条形。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:07