💡COUNTROWS 和 COUNT 是 Power BI / DAX 里都能用来“计数”的函数,但它们有很明显的区别:
✅ 一句话总结:
COUNTROWS是数“行”的,COUNT是数“某列非空值”的。
🔍 表格对比:
| 函数 | 作用 | 对象类型 | 能不能数表达式/子表 | 空值会不会被统计 |
|---|---|---|---|---|
COUNT | 统计某列中的非空值个数 | 某一列 | ❌ 不能用子表 | ❌ 不统计空值 |
COUNTROWS | 统计表中的行数 | 整张表或子表 | ✅ 可以是筛选后的表 | ✅ 空值也统计 |
🧾 举个例子更清楚:
假设你有一个客户表:
| 客户ID | 姓名 | 邮箱 |
|---|---|---|
| 1 | 小张 | zhang@example.com |
| 2 | 小李 | |
| 3 | 小王 | wang@example.com |
| 4 | 小赵 |
🔹 COUNT(客户[邮箱])
只统计“邮箱”列中有值的行:
✅ 小张、✅ 小王 👉 结果是 2
🔹 COUNTROWS(客户)
统计整个表的行数(无论有没有邮箱):
✅ 4 条记录 👉 结果是 4
✅ 使用场景对比
| 目的 | 推荐函数 | 示例 |
|---|---|---|
| 统计某列非空值数量 | COUNT | COUNT(Sales[OrderID]) |
| 统计表或子表的行数 | COUNTROWS | COUNTROWS(Sales) |
| 统计符合条件的记录数 | COUNTROWS + FILTER | COUNTROWS(FILTER(Sales, Sales[Amount]>1000)) |
| 统计分组数量 | COUNTROWS + SUMMARIZE | COUNTROWS(SUMMARIZE(Product, Product[Category])) |
📌 小结口诀:
✔️ 列里的值?用
COUNT
✔️ 整张表(或筛选后子表)的行?用COUNTROWS