提取excel中给定起始值的列表的一部分

我想提取列表的一部分,给出通过索引/匹配组合或vlookup函数find的起始值。 然而,因此只有初始值被返回,但是列表中的后续值也是感兴趣的,应该遵循这个初始的发现值。 有没有一种方法来组合返回子数组的函数? 预先感谢您的帮助。 最好的问候,奥利弗

假设我们有这样的数据:

在这里输入图像说明

而我们想要英国人VLOOKUP()只会回到威廉。 如果我们不仅要威廉 ,而且要在C1中input:

联合王国

C2中input数组公式:

=IFERROR(INDEX($B$2:$B$22, SMALL(IF(C$1=$A$2:$A$22, ROW($A$2:$A$22)-MIN(ROW($A$2:$A$22))+1, ""), ROW(A1))),"") 

并抄下来:

在这里输入图像说明

数组公式必须使用Ctrl + Shift + Enterinput,而不仅仅是Enter键。

1.增加行/列计数选项

1A。 起始值,子列表长度

让我们假设这个样本数据和结果格式:

  ABCD --------------------------------------------- 1|John Start Value Amy Amy 2|Jane Sub-List Length 3 Amber 3|Amy Chris 4|Amber 5|Chris 6|Dan 7|Bob 

您可以通过使用以下公式并自动填充来实现此目的:

 =IFERROR(INDEX($A:$A,(MATCH($C$1,$A:$A,0))+IF(ROWS($1:1)<=$C$2,ROWS($1:1)-1,#VALUE!)),"") 

1B。 起始值,结束值

示例数据和结果格式:

  ABCD --------------------------------------------- 1|John Start Value Amy Amy 2|Jane End Value Dan Amber 3|Amy Chris 4|Amber Dan 5|Chris 6|Dan 7|Bob 

使用此公式并自动填充:

 =IFERROR(INDEX($A:$A,(MATCH($C$1,$A:$A,0))+IF(ROWS($1:1)<=(MATCH($C$2,$A:$A,0)-MATCH($C$1,$A:$A,0)+1),ROWS($1:1)-1,#VALUE!)),"") 

1C。 起始值,列表结束


示例数据和结果格式:

  ABCD --------------------------------------------- 1|John Start Value Chris Chris 2|Jane Dan 3|Amy Bob 4|Amber 5|Chris 6|Dan 7|Bob 

使用此公式并自动填充:

 =IFERROR(INDEX($A:$A,(MATCH($C$1,$A:$A,0))+IF(ROWS($1:1)<=(COUNTA($A:$A)-MATCH($C$1,$A:$A,0)+1),ROWS($1:1)-1,#VALUE!)),"") 

注意:对于选项1a-1c,如果你想有一个水平列表结果,用COLUMNS($A:A)replaceROWS($1:1) COLUMNS($A:A)并自动填充到右边


2.使用预定义的数组:

注意:这些选项要求您select您想要的值的范围,然后使用Ctrl + Shift + Enter键input数据。


2A。 垂直子表,固定长度:

样本数据和结果格式,固定长度为4

  ABCD --------------------------------------------- 1|John Start Value Amy Amy 2|Jane Amber 3|Amy Chris 4|Amber Dan 5|Chris 6|Dan 7|Bob 

select单元格D1:D4并在此公式中input:

 =INDEX($A:$A,MATCH($C$1,$A:$A,0)+TRANSPOSE({0,1,2,3})) 

然后使用Ctrl + Shift + Enter


2B。 水平子表,固定长度:

样本数据和结果格式,固定长度为4

  ABCDEFG ---------------------------------------------------------- 1|John Start Value Amy Amy Amber Chris Dan 2|Jane 3|Amy 4|Amber 5|Chris 6|Dan 7|Bob 

与没有TRANSPOSE并select单元格的最后一个公式相同D1:G1

 =INDEX($A:$A,MATCH($C$1,$A:$A,0)+{0,1,2,3}) 

再次使用Ctrl + Shift + Enter


注:要增加长度,请向数组{0,1,2,3, ...}添加{0,1,2,3, ...}