过滤器中的行数

HYC*_*HYC 9 microsoft-excel

在带过滤器的范围中,我想要一列行号,它会根据过滤器变化,以便行始终从 1 开始连续计数。例如,以下是带过滤器的范围:

Number   Name    Gender
1        Alice   F
2        Jason   M
3        Ka      F
4        Fiona   F
5        Albert  M
Run Code Online (Sandbox Code Playgroud)

现在假设我们应用一个过滤器来显示 Gender 为 M 的行:

Number   Name    Gender
2        Jason   M
5        Albert  M
Run Code Online (Sandbox Code Playgroud)

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

Number   Name    Gender
1        Jason   M
2        Albert  M
Run Code Online (Sandbox Code Playgroud)

因此,应根据过滤器对行重新编号。我已经尝试过类似=MAX(...)+1或使用该SUBTOTAL()功能的东西,但我还没有成功。是否可以为 Number 列编写一个公式来完成此任务?如何?

Mát*_*ász 13

使用这个公式:

=AGGREGATE(3,5,$A$1:A1)
Run Code Online (Sandbox Code Playgroud)

进入细胞A2。(这假设您在单元格中有一个列标题A1。)

参数AGGREGATE()

  • function_num = 3,统计一个范围内所有非空单元格
  • options = 5,忽略范围内的隐藏行
  • Array = $A$1:A1,范围从第一行到所选单元格上方的行

示例输出:

在此处输入图片说明

正如 benshepherd 所提到的,SUBTOTAL()也可以使用。


ben*_*erd 6

@Máté Juhász 比我先到了。我打算使用SUBTOTAL. 在A2中,放下=SUBTOTAL(103,B$2:B2)并填充。

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