避免间接()

我有像第3行的数据:

在这里输入图像说明

我想findPass这个词的前两个出现。

第一次发生很容易; 在C6我input:

=MATCH("Pass",3:3,0) 

并正确地产生3 (列C 。 为了得到第二次出现的位置,我想用MATCH()从第一次出现的右边开始,即D3:IV3 ,但是根据我已经在C6中得到的结果,我知道我可以得到D有:

 =SUBSTITUTE((LEFT(ADDRESS(1,C6+1),3)),"$","") 

所以我正在使用:

 =MATCH("Pass",INDIRECT(SUBSTITUTE((LEFT(ADDRESS(1,C6+1),3)),"$","") & "3:IV3"),0)+C6 

这工作:

在这里输入图像说明

但是我不能相信这个非常难看的公式是find第二个事件的最好方法。 有什么build议么 ??

使用AGGREGATE作为SMALL(IF())来获得Pass的第二列:

 =AGGREGATE(15,6,COLUMN(A:Z)/(A3:Z3="Pass"),2) 

其中2是发生。

在这里输入图像说明


我知道你有多less不喜欢数组公式,因为你已经知道第一个你可以find第二个公式:

 =MATCH("Pass",INDEX(3:3,D5+1):INDEX(3:3,15000),0)+D5 

![在这里输入图片描述