在 Excel 中,Row函数用于返回单元格的行号,Rows函数用于返回数组或引用单元格的行数。如果Row函数省略参数,默认返回公式所在单元格的行号;Rows函数不能省略参数。Rows函数常与Indirect函数、Index函数、If函数、Match函数、SumProduct函数、Mod函数组合使用。以下是 Excel Row函数和Rows函数的使用方法,共列举有5个实例,包含Row(A:A)、Row(1:1)、Row函数与Indirect函数组合、Row + Mod + SumProduct函数组合的实例,实例操作所用版本均为 Excel 2016。
一、Row函数和Rows函数语法
Row函数表达式:ROW([Reference])
Rows函数表达式:ROWS(Array)
说明:
1、Row函数用于返回引用单元格的行号。Reference 为对单元格或单元格区域的引用,可以省略;如果省略,默认返回 Row 所在行的行号;如果 Reference 为对一个单元格区域的垂直引用(如 A1:A6),将以数组形式返回所有引用单元格的行号,按 F9 可以看到;Reference 不能一次引用多个区域。
2、Rows函数用于返回引用的行数。Array 为数组或对单元格区域的引用,不能省略。
二、Row函数的使用方法及实例
(一)省略 Reference 的实例
选中 A1 单元格,输入公式 =row(),按回车,返回 A1 的行号 1;再次选中 A1 单元格,把鼠标移到 A1 右下角的单元格填充柄上,按住左键,往下拖一直拖到 A7,则返回 A1 到 A7 单元格的行号;操作过程步骤,如图1所示:
(二)引用一列(A:A)与一行(1:1)的实例
1、选中 B1 单元格,输入公式 =row(,单击一下 A 列的字母 A,则自动输入 A:A,按回车,返回 1;把鼠标移到 B1 右下角的单元格填充柄上,按住左键,往右拖一直到 D1,分别双击 C1 和 D1 单元格,A:A 自动变为 B:B 和 C:C;选中 B2 单元格,输入公式 =Row(,单击第四行行号 4,则 4:4 自动输入,按回车,返回 4,把鼠标移到 B2 右下角的单元格填充柄上,按住左键,往下拖,一直拖到 B7,分别双击 B3 和 B4 单元格,4:4 分别变为 5:5 和 6:6,操作过程步骤,如图2所示:
2、公式说明:
A、=row(A:A) 是以数组的形式返回 A 列的所有行号,当仅在一个单元格中输入 =row(A:A) 时,只返回第一个单元格的行号,因此返回 1;为了看到 =row(A:A) 返回的所有行号,需要把 =row(A:A) 放到Index函数中,操作过程步骤,如图3所示:
操作过程步骤说明:选中 B1 单元格,按住 Alt 键,按一次 M,按一次 V,打开“公式求值”窗口,单击“求值”,以数组形式返回 A 列的所有行号。
B、=row(4:4) 中的 4:4 表示对第 4 行的引用,以数组形式返回第 4 行行号,即 {4};选中 =row(4:4) 所在单元格,按 F9 或把 =row(4:4) 放到Index函数中都能看到以数组形式返回的{4}。
(三)参数 Reference 为数字与函数组合的实例
1、假如要返回表格 A 列不为空单元格的数组。把公式 =INDEX(ROW(INDIRECT("1:"&COUNTA(A:A))),1) 复制到 B10 单元格,如图4所示:
2、按回车,返回 1,这样看不到 ROW(INDIRECT("1:"&COUNTA(A:A))) 返回 A 列不为空单元格的数组,选中 B10,按住 Alt,按一次 M,按一次 V,打开“公式求值”窗口,单击四次“求值”,就可以看到,如图5所示:
3、A 列从 A1 到 A9 共 9 个单元格(文字后的空单元格不算),8 个单元格不为空,只有一个单元格为空,数组共有 8 个元素,说明结果正确。
4、公式说明:公式 =INDEX(ROW(INDIRECT("1:"&COUNTA(A:A))),1) 中的 COUNTA(A:A) 用于返回 A 列不为空单元格的数目,即返回 8;Indirect函数用于返回 1 连接返回的 8 的引用,INDIRECT("1:"&8) 返回的结果为 $1:$8,则 Row 变为 Row($1:$8),意思是返回第 1 行到第 8 行的数组。
提示:如果数字与函数组合作为 Row 的 Reference 参数,不能直接这样写:=Row(1:COUNTA(A:A)),因为这样写无法返回结果,应该这样写:=ROW(INDIRECT("1:"&COUNTA(A:A)),也就是需要用Indirect函数先返回对数字的引用。
(四)Row + Mod + SumProduct函数组合使用实例
1、假如要求奇数行的和。把公式 =SUMPRODUCT((MOD(ROW($2:$6),2)=ROW(A1))*D$2:D$6) 复制到 D7 单元格,按回车,返回求和结果 1479.00,操作过程步骤,如图6所示:
2、公式说明:
A、ROW($2:$6) 用于以数组形式返回 2 到 6 行的行号,MOD(ROW($2:$6),2) 用于将 2 到 6 行的每一个行号与 2 取模,ROW(A1) 用于返回 A1 的行号 1,如果 2 到 6 行的每一个行号与 2 取模的结果等于 1,将返回 True,最后返回一个数组 {False;True;False;True;False},如图7所示:
B、则公式变为 =SUMPRODUCT({False;True;False;True;False}*D$2:D$6),接着用数组中的每个元素与 D2 至 D6 中数值相乘,由于 False 被转为 0,True 转为 1,所以公式变为 =SUMPRODUCT({0;899;0;580;0}),求和后结果正是 1479.00,即 D2:D6 中的奇数行之和。
三、Rows函数的使用方法及实例
1、选中 A1 单元格,输入公式 =Rows({8,2,19,25}),按回车,返回结果为 1;双击 A1 单元格,把 2 后的逗号“,”改为分号“;”,按回车,返回 2;再次双击 A1 单元格,把公式改为 =Rows(b2:b8),按回车,返回 7;操作过程步骤,如图8所示:
2、公式 =Rows({8,2,19,25}) 返回数组的行数为 1,而公式 =Rows({8,2;19,25}) 返回数组元素行数为 2,因为数组以分号“;”作为换行符;公式 =Rows(b2:b8) 是返回第 2 到第 8 行的行数。