Excel – 基于文本filter创build子列表

我正在尝试实现类似于本文中所解释的内容:

Extract a List of Values Filtered by Criteria with Sub-Arrays

对于这个例子,列B具有文本,列c具有整数值,列d具有文本

下面的公式适用于在我的数据的C列中过滤> = 1的值:

=IFERROR( INDEX( B$2:B$11, SMALL( IF( $C$2:$C$11>=1, ROW(B$2:B$11)-ROW(B$2)+1 ), ROWS(B$2:B2) ) ), "" ) 

我想用一个search函数来replace该行,该函数根据单元格的文本内容(从D列)进行过滤。 以下内容适用于单行(如果单元格中不包含“a”,则返回0,否则返回大于0的值)。

 =IFERROR(SEARCH("a",$D2),0) 

但是,将它与第一个函数结合是行不通的:

 =IFERROR( INDEX( B$2:B$11, SMALL( IF( IFERROR(SEARCH("a",$D$2:$D$11),0)>=1, ROW(B$2:B$11)-ROW(B$2)+1 ), ROWS(B$2:B2) ) ), "" ) 

我从这个公式中错过了什么?

恕我直言,没有什么错。 它对我很有帮助,但是当我尝试用选定的范围就地更改原始公式时遇到了问题。 如果你从工作表的新区域开始,或者只是select原始范围内的顶部单元格,然后一旦你改变它就把它拉下来,没关系。 在select的范围内,我没有把最后的B2更改为B3等,所以我一直保持重复的第一个行号。

顺便说一句,在公式的修改部分中不需要“> = 1”,因为任何匹配都会给出一个等于“true”的结果> 0,

 IFERROR(SEARCH("a",$D$2:$D$11),0) 

另请参阅在更改数组公式之前将数组公式更改为普通公式的build议

更改数组公式