使用简单标准定位单元格

使用简单标准定位单元格

我有如下数据:

在此处输入图片描述

我需要找到(获取行号)对于以字母开头的单元格A

我目前的方法是使用“辅助”列。在B1我输入:

=IF(LEFT(A1)="A",1,"")

以及B2我输入:

=IF(LEFT(A2)="A",MAX($B$1:B1)+1,"")

并向下复制。这标识了感兴趣的行。最后在C1我用:

=IFERROR(MATCH(ROWS($1:1),$B$1:$B$23,0),"")

并抄下来。

在此处输入图片描述

我的目标是消除“助手”栏。

我看到的唯一两个选项是:

  • 使用自动过滤器
  • 使用 VBA自定义函数

自动过滤方法很糟糕,因为每次刷新数据时都必须重新运行过滤器。自定义函数这种方法很糟糕,因为工作表必须在无 VBA 的环境中工作。

是否有任何类型的公式或数组公式可以获取行号,或者我是否只能使用“辅助”列?

答案1

尝试使用 ++ 输入以下Ctrl数组Shift公式Enter

{=SMALL(IF(LEFT($A$1:$A$23)="A",ROW($A$1:$A$23),9E+99),ROW())}

不过,我推测您的实际应用中的标准比这个更复杂。您可以LEFT($A$1:$A$23)="A"用任何您喜欢的标准替换,它仍然有效。

9E+99请注意,如果您将其复制下来,行数超过以“A”开头的行数,则将返回此结果。您可以调整它以返回空白:

{=IFERROR(SMALL(IF(LEFT($A$1:$A$14)="A",ROW($A$1:$A$14),""),ROW()),"")}

答案2

试试这个:
在 C1 中输入 0。
从 C2:=match(indirect("a"&c1+1&":a<last row>",true),"a*",0)+C1
注意:匹配不区分大小写。找到匹配项后,您需要管理错误。

相关内容