我想提取一个列表的一部分,给出通过索引/匹配组合或vlookup函数找到的起始值。但是,因此仅返回初始值,但列表中的后续值也是有意义的,并且应遵循此初始找到的值。有没有办法组合返回子数组的函数?提前感谢您的帮助。最诚挚的问候,奥利弗
答案 0 :(得分:0)
假设我们有以下数据:
我们想要英国人, VLOOKUP()只会返回 William。如果我们想要的不仅仅是 William < / em>,然后在 C1 中输入:
<强> UK 强>
并在 C2 中输入数组公式:
=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 + 输入输入
数组公式,而不仅仅是 Enter key。
答案 1 :(得分:0)
让我们假设这个样本数据和结果格式:
A B C D
---------------------------------------------
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!)),"")
<小时/>
样本数据和结果格式:
A B C D
---------------------------------------------
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!)),"")
<小时/> 样本数据和结果格式:
A B C D
---------------------------------------------
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,如果您希望获得水平列表结果,请将
ROWS($1:1)
替换为COLUMNS($A:A)
并将自动填充
注意:这些选项要求您选择希望值所在的范围,然后使用 ctrl + shift + < kbd>输入输入数据。
<小时/>
样本数据和结果格式,固定长度为4
A B C D
---------------------------------------------
1|John Start Value Amy Amy
2|Jane Amber
3|Amy Chris
4|Amber Dan
5|Chris
6|Dan
7|Bob
选择单元格D1:D4
并输入以下公式:
=INDEX($A:$A,MATCH($C$1,$A:$A,0)+TRANSPOSE({0,1,2,3}))
然后使用 ctrl + shift + 输入
<小时/>
样本数据和结果格式,固定长度为4
A B C D E F G
----------------------------------------------------------
1|John Start Value Amy Amy Amber Chris Dan
2|Jane
3|Amy
4|Amber
5|Chris
6|Dan
7|Bob
与没有TRANSPOSE
的上一个公式相同并选择单元格D1:G1
:
=INDEX($A:$A,MATCH($C$1,$A:$A,0)+{0,1,2,3})
再次,使用 ctrl + shift + 输入
<小时/> 注意:要增加长度,请向数组添加其他值{0,1,2,3, ...}