过滤器中的行编号

过滤器中的行编号

在带有过滤器的范围内,我希望有一列行号,它将根据过滤器改变,这样行总是从 1 开始连续计数。例如,以下是带有过滤器的范围:

Number   Name    Gender
1        Alice   F
2        Jason   M
3        Ka      F
4        Fiona   F
5        Albert  M

现在假设我们应用过滤器来显示性别为 M 的行:

Number   Name    Gender
2        Jason   M
5        Albert  M

以上是Excel通常显示的内容,但我希望数字从1连续计数,如下所示:

Number   Name    Gender
1        Jason   M
2        Albert  M

因此,行应该根据过滤器重新编号。我尝试过类似=MAX(...)+1或使用SUBTOTAL()函数的方法,但还没有成功。是否可以为数字列编写一个公式来完成此任务?怎么做?

答案1

使用以下公式:

=AGGREGATE(3,5,$A$1:A1)

到单元格 中A2。(假设单元格 中有一个列标题A1。)

参数AGGREGATE()

  • Function_num = 3,计算范围内所有非空白单元格的数量
  • 选项 = 5,忽略范围内的隐藏行
  • 数组 = $A$1:A1,范围从第一行到选定单元格上方的行

示例输出:

在此处输入图片描述

正如 benshepherd 所说,SUBTOTAL()也可以使用。

答案2

@Máté Juhász 刚好在我之前到达那里。我打算使用另一种方法SUBTOTAL。在 A2 中,输入=SUBTOTAL(103,B$2:B2)并向下填充。

SUBTOTAL函数对其参数执行编号函数 - 这些函数在帮助中进行了描述。103 对应于COUNTA忽略隐藏行。(您可以使用值 3 来包含隐藏行。)COUNTA计算范围内非空白单元格的数量。我们使用语法B$2:B2使顶部单元格保持不变,并在向下移动列表时扩展范围。

相关内容