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

PowerBI中如何统计表格每列的空单元格与非空单元格数量?

列空值/非空值统计实现方案

以下分别给出Excel、Python Pandas、SQL三种常用场景的实现方法,统计逻辑完全匹配Excel的COUNTA、COUNTBLANK函数规则:

1. Excel 原生实现

适合中小体量数据,无需写代码:

  • 非空单元格统计:在目标列对应统计单元格输入公式 =COUNTA(列范围),例:统计A列全列非空数量填 =COUNTA(A:A)
  • 空单元格统计:输入公式 =COUNTBLANK(列范围),例:统计A列全列空值数量填 =COUNTBLANK(A:A)
  • 批量多列统计:写完第一列的两个统计公式后,选中两个单元格向右拖拽,即可自动适配其他列的统计范围
  • 最后把所有列的统计结果整理成单独的汇总表即可

2. Python Pandas 实现

适合超大体量(10万行以上)Excel无法流畅打开的数据:

import pandas as pd

# 读取数据,csv格式用read_csv,xlsx格式用read_excel,替换为你自己的文件路径
df = pd.read_csv("客户数据.csv")

# 可选:把纯空格、空字符串识别为空值,避免统计误差
df = df.replace(r'^\s*$', pd.NA, regex=True)

# 生成统计结果
stat_df = pd.DataFrame({
    "列名": df.columns,
    "非空单元格数量": df.count().values,
    "空单元格数量": df.isna().sum().values
})

# 打印结果或者导出为Excel文件
print(stat_df)
# stat_df.to_excel("列统计结果.xlsx", index=False)

3. SQL 实现

适合数据存储在业务数据库中的场景,以下为MySQL语法示例:

-- 每列对应一段查询,多列用UNION ALL拼接
SELECT 
  '客户ID' AS 列名,
  COUNT(`客户ID`) AS 非空单元格数量,
  SUM(CASE WHEN `客户ID` IS NULL OR TRIM(`客户ID`) = '' THEN 1 ELSE 0 END) AS 空单元格数量
FROM customer_data
UNION ALL
SELECT 
  '客户姓名' AS 列名,
  COUNT(`客户姓名`) AS 非空单元格数量,
  SUM(CASE WHEN `客户姓名` IS NULL OR TRIM(`客户姓名`) = '' THEN 1 ELSE 0 END) AS 空单元格数量
FROM customer_data
  • 其他数据库(PostgreSQL、Oracle等)语法基本一致,仅需调整空值判断的内置函数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:06:03