【问题标题】:Find number of rows in an already filtered Column A in Excel在 Excel 中查找已过滤的 A 列中的行数
【发布时间】:2018-08-28 14:04:09
【问题描述】:

我有一个 Excel 电子表格。此电子表格中只有一个选项卡。选项卡名称本质上是动态的,并且每周都会更改行数。

我已经使用 VBA 宏过滤了 A 列。 A1 有标题。 现在,我想找出这个已经过滤的 A 列中有多少行。 我正在寻找任何 VBA 功能。 我尝试过使用小计功能。

=Subtotal(103,A2:A1345)

但我不知道结束范围。截至目前,结束范围是 A1345。如果添加新行,它将来每次都会更改。

我尝试了多种方法,但没有奏效。我对 VBA 很陌生。

【问题讨论】:

  • 发布您尝试过的内容通常很有帮助,即使它不起作用。也就是说,我相信 this 就是您要找的东西
  • 如果 A1 永远不会为空,您可以使用=Subtotal(103,A:A)-1。或者,如果您的表下方有数据不计入,则将您的表格式化为Table 并使用结构化引用:=SUBTOTAL(103,Table1[column_header])
  • A1 有标题。实际数据来自 A2。我刚刚在编辑中添加了它。当我做=Subtotal(103,A:A)-1 时,excel 给了我一个循环引用错误
  • 好吧,A列中不能有公式
  • 然后将公式放入A列。使用=Subtotal(103, A2:A<row above the formula>)

标签: vba excel


【解决方案1】:

如果 A1 永远不会为空,您可以使用(在A 以外的列中)

=Subtotal(103,A:A)-1. 

或者,如果您的表格下方有数据不计算在内,则将表格格式化为表格并使用结构化引用(此公式可以进入 A 列)

=SUBTOTAL(103,Table1[column_header])

【讨论】:

    【解决方案2】:

    如果您使用另一列的最后填充单元格作为分界点,则可以将公式放在 A 列中。

    如果 B 列包含数字,则

    =subtotal(103, a2:index(a:a, match(1e99, b:b)))
    

    如果 B 列包含文本,则

    =subtotal(103, a2:index(a:a, match("zzz", b:b)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 2016-07-14
      • 2022-01-03
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多