多次返回Vlookup水平匹配范围,垂直返回范围

时间:2017-05-04 13:40:58

标签: excel excel-vba excel-formula vlookup vba

我在水平方向上运行二进制数据:例如匹配范围如下:

Mike 0 1 0 0 0 1

Julie 1 1 0 1 1 0

Joe 1 1 1 0 0 0

返回范围包含文本数据:

第一季度:纽约的首都是什么? Q2:俄亥俄州的首都是什么? Q3:华盛顿的首都是什么? 。 。

我需要将每次出现的1与在垂直方向上运行的相应数据相匹配。即与垂直索引相对应的水平索引。我找到了几个使用以下命令完成多次返回vlookup的实例:

= IFERROR(INDEX(return_range,SMALL(IF((1 = match_range),ROW(match_range)-1),ROW(1:1)),2),"&#34)

然而,这不起作用。我认为它不起作用,因为它适用于两个垂直数据集。我试过切换"行" for" column"在功能,但没有任何运气。

此外,匹配范围和返回范围在不同的工作表上。

匹配范围(水平方向)是关于问题是否被正确回答的二进制信息。返回范围是相应的一组问题(垂直方向)。因此,输出将是一个数组:

迈克:Q2 Q6

Julie:Q1 Q4 Q5

Joe:Q1 Q2 Q3

enter image description here enter image description here

如何修改此功能以实现此目的?

1 个答案:

答案 0 :(得分:0)

要在数组中获取正确的行,然后可以在其他公式中使用,我们使用INDEX:

INDEX($A:$G,MATCH($I2,$A:$A,0),0)

这将返回名称与I2中匹配的行中A列到G列中的所有值。

它可以在INDEX / AGGREGATE函数中使用:

=IFERROR(INDEX($A$1:$G$1,AGGREGATE(15,6, COLUMN(INDEX($A:$G,MATCH($I2,$A:$A,0),0))/(INDEX($A:$G,MATCH($I2,$A:$A,0),0)=1),COLUMN(A:A))),"")

enter image description here

我对您的数据设置的最佳猜测是:

使用这样的公式:

=IFERROR(INDEX($I:$I,AGGREGATE(15,6, COLUMN(INDEX($A:$G,MATCH($K2,$A:$A,0),0))/(INDEX($A:$G,MATCH($K2,$A:$A,0),0)=1),COLUMN(A:A))),"")

enter image description here