如何在 Microsoft Excel 中使用 ROWS 函数
许多 Excel 用户放弃使用 ROWS 函数,因为它感觉像是可以跳过的技术性细节。然而,要创建一个真正实用的工作簿,你需要能够根据数据维度自适应的公式,而 ROWS 函数正是理想选择。以下是我用它让 Excel 表格更智能的四种方法。
ROWS 函数的工作原理
ROWS 函数的语法非常简单:
=ROWS(array)单个参数(数组)是一个单元格区域或 Excel 表。该函数的唯一作用是准确告诉你数据集有多高,无论这些行是空的还是有数据的。
我接下来要向你展示的所有示例都使用一个名为 T_Orders 的格式化 Excel 表格。使用表格让我可以使用结构化引用而不是直接的单元格引用,这使我的公式更易于阅读和维护。
虽然现代 Excel(Microsoft 365 的 Excel 和 Excel 2021)拥有像 SEQUENCE 和 FILTER 这样的动态数组函数,但本指南中的 ROWS 方法与旧版本 Excel 完全兼容,使用大多数用户已经理解的核心函数,并且即使在数据集排序或筛选时也能正常工作。
用例 1:创建防排序行索引
ROWS 函数计算特定范围内的行数。通过使用一个扩展范围——从固定的起点开始但以当前行结束——你可以生成一个动态的顺序列表。
场景
你想用行号填充A列,即使你按其他列重新排序表格,行号仍能保持完美的数字顺序。
ROWS 解决方案
在列的第一行输入此公式,然后按回车键:
=ROWS(T_Orders[#Headers]:[@OrderID])-1因为你使用的是结构化的 Excel 表格,公式会自动向下填充到整列。
这个公式从表头(T_Orders[#Headers])开始,到当前行([@OrderID])结束。随着向下移动表格,起始点固定在顶部,而结束点下移,使 ROWS 函数可以计算这个不断增长的窗口中的行数。最后的 -1 减法将表头从计数中排除。
为什么选择 ROWS 是正确的
标准的替代方法 =ROW() 与工作表的网格相关。如果你把表从第1行移动到第10行,索引号将变为11、12、13,依此类推。ROWS 方法是相对于表的,这意味着它只关心表内的位置。
用例 2:计算“防幽灵”百分比关键绩效指标
在 Excel 中计算百分比时,你需要一个表示数据集总容量的分母。ROWS 会返回表格的行数,无论单元格内容如何。
场景
您需要准确计算出您的总订单量中有百分之多少已经达到“已发货”状态。
ROWS 解决方案
在工作表顶部的仪表板区域,输入此公式:
=COUNTIF(T_Orders[Status],"Shipped")/ROWS(T_Orders)
公式中的 COUNTIF 部分计算包含“Shipped”一词的行数,然后将其除以 ROWS(T_Orders),后者返回 T_Orders 表的总行数。
在“开始”选项卡的“数字”组中单击“%”图标,以确保结果以百分比而不是小数形式显示。
为什么选择 ROWS 是正确的
在这种情况下,你可能会想使用 COUNTA 作为分母,但该函数只计算非空单元格。如果有人向表格添加新行但状态留空,或者某个单元格包含一个不可见的“幽灵”字符(如空格),COUNTA 会返回不正确的总数。ROWS 测量的是容器,而不是内容,因此你的关键绩效指标是基于表格的实际大小。
用例3:审计数据完整性
因为ROWS测量的是区域的物理大小,所以在与统计实际值的函数比较时,它起到了自动审计的作用。
场景
你希望有一个警报,当表中添加新行但关键的金额字段为空时发出提醒。
ROWS 解决方案
以下是您可以添加到仪表板区域以实现此功能的公式:
=IF(ROWS(T_Orders)>SUMPRODUCT(--(LEN(T_Orders[Amount])>0)),"[!] Amount entry missing","All clear")
这将表中总行数(ROWS)与“Amount”列中实际包含字符的单元格计数进行比较。通过使用 LEN 检查字符长度并用 SUMPRODUCT 汇总结果,你是在强制 Excel 仅计算字符数大于零的单元格。如果表中的总行数超过该计数,公式将返回“金额输入缺失”提醒;否则,它将返回“全部通过”。
为什么选择 ROWS 是正确的
像 COUNTA 和 COUNTBLANK 这样的常用方法可能会陷入误判“幽灵”数据的陷阱,例如意外的空格或由公式返回的空字符串。通过将 ROWS 与长度检查结合使用,你可以创建一个更可靠的机械式审核。
用例 4:构建灵活的“前 X 名”报告
将 ROWS 与像 LARGE 这样的排序函数结合使用,可以通过将静态排名转化为动态增量器,从而自动扩展报表。
场景
你想在仪表板上显示最高订单金额的前三名排行榜,但你也希望能够向下拖动列表显示前五名,而无需重写公式或手动更改每一行的排名。
ROWS 解决方案
在排行榜的第一个单元格中,使用以下公式:
=LARGE(T_Orders[Amount],ROWS($1:1))然后,点击并拖动该单元格的填充柄向下两行,完成前三名排行榜的填写。
LARGE 函数需要两个参数:数据范围和 k 值(排名)。与其输入一个固定的排名数字,不如使用 ROWS($1:1),它在第一行返回 1。然而,由于范围的第一部分是绝对的($1),而第二部分是相对的(1),当你向下拖动公式时,范围会伸展,从而创建一个自动计数器,精确告诉 LARGE 函数要抓取哪个排名。
为什么选择 ROWS 是正确的
常见的替代方法是使用数组常量({1;2;3})来返回前三个值。然而,这种硬编码的方法意味着你必须手动回到公式中去更改结果中的值的数量。或者,你可以使用 SEQUENCE 函数,但这缺乏向后兼容性。ROWS 方法是通用的——它在每个版本的 Excel 中都能使用,并且允许任何人通过拖动填充柄来扩展报告,或者通过清除相关单元格来缩小报告。
ROWS 函数只是审计 Excel 工作簿的一种方法。你还可以通过使用“定位条件”查找隐藏的常量或不一致的公式,进一步深入了解工作簿的健康状况,并将这些工具与使公式更易阅读的习惯结合使用,从而确保你的电子表格长期以来对于你和你的同事都易于维护。










