将行中的值匹配到列中

时间:2018-03-27 19:08:24

标签: excel vba excel-vba excel-formula

我正在匹配两个工作表,以根据一组条件提取所选值。

我的两张工作表&目标工作表看起来与此类似:

真实数据

Flavor ID      Size ID      California      Europe       China   
2              4            2               5                
1              3                            4               
3              1            3                            2   
1              2            4                            2              

要重新填充的工作表

Flavor ID          Size ID           Score ID        Location
2                  4                 1               California
1                  3                 1               Europe       
3                  1                 1               China
1                  2                 1               California

目标

Flavor ID          Size ID           Score ID        Location
2                  4                 2               California
1                  3                 4               Europe       
3                  1                 2               China
1                  2                 4               California

简而言之,我在Flavor ID& amp;大小ID,用于将真实数据工作表中的位置下的值提取到“要重新填充的工作表”的“分数ID”列中的相应单元格。

我最初开始使用索引/匹配组合;

=INDEX(Sheet2!A1:AK51, MATCH(1, (TrueData!$A:$A = SheettoPopulate!A2)*(TrueData!$B:$B = SheettoPopulate!B2)*(TrueData!$C$1:$E$1 = SheettoPopulate!D2), 0) , _____)

然后意识到我不知道如何将位于位置下的值提取到一列中(混淆在最后一个参数处)。

2 个答案:

答案 0 :(得分:1)

将SUMIFS与INDEX一起使用以返回正确的列:

=SUMIFS(INDEX(C:E,0,MATCH(K2,$C$1:$E$1,0)),A:A,H2,B:B,I2)

enter image description here

答案 1 :(得分:0)

我在一些示例数据上使用它来填充Score ID列。放入B2并向下拖动。请注意,您必须根据数据表的大小等更改某些范围。这只是您提供的示例数据的示例。

=VLOOKUP(B2,'True Data'!$B$1:$E$5,CELL("col",INDEX('True Data'!$C$1:$E$1,1,MATCH(Goal!$D2,'True Data'!$C$1:$E$1,0))) - 1,FALSE)

True Data标签上:

Image1

然后在我的Goal标签上:

Image2

我必须使用CELL来获取带有INDEX/MATCH的参考列,然后我将其用作VLOOKUP公式中的返回列。

编辑:以下是2列中的公式:

=INDEX('True Data'!$A$1:$E$5,MATCH(1,('True Data'!A:A=Goal!A2)*('True Data'!B:B='True Data'!B2),0),CELL("col",INDEX('True Data'!$C$1:$E$1,1,MATCH(Goal!$D2,'True Data'!$C$1:$E$1,0))))

注意:这是一个数组公式。