使用 Vlookup 从两个工作表的公共列中获取多个匹配行

using Vlookup to get multiple matching rows from a common column across two sheets

我先sheet下面

我下面还有第二个sheet

我想要的结果是

`tried Vlookup function several ways but not able to get entire row.

假设 Excel Tables 的位置如下:

Table Sheet Address
Table1 Sht(1) B2:C4
Table2 Sht(2) B2:F12
Results Sht(0) B2:G12

在 Table 中输入这些公式 Results:
字段:Name

= IFERROR( INDEX( Table2[Name], AGGREGATE( 15, 6, ROW(D:D) /  
  ( ( MATCH( Table2[Id], Table1[Id], 0 ) > 0 ) * 1 ),
  ROWS(D:D3) ) ), TEXT(,) )

字段:Id

= IFERROR( INDEX( Table2[Id], MATCH( [@Name], Table2[Name], 0 ) ), TEXT(,) )

字段:Program

= IFERROR( INDEX( Table1[Program], MATCH( [@Id], Table1[Id], 0 ) ), TEXT(,) )

字段:Maths

=IFERROR( INDEX( Table2[Maths], MATCH( [@Name], Table2[Name], 0 ) ), TEXT(,) )

字段:Science

=IFERROR( INDEX( Table2[Science], MATCH( [@Name], Table2[Name], 0 ) ), TEXT(,) )

字段:English

=IFERROR( INDEX( Table2[English], MATCH( [@Name], Table2[Name], 0 ) ), TEXT(,) )

如果您不使用 Excel Tables,请使用以下公式:

字段:Name

= IFERROR( INDEX( 'Sht(2)'!$C:$C, AGGREGATE( 15, 6, ROW(D:D) /
  ( ( MATCH( 'Sht(2)'!$B:$B, 'Sht(1)'!$C:$C, 0 ) > 0 ) * 1 ),
  ROWS(D:D3) ) ), TEXT(,) )

字段Id

= IFERROR( INDEX( 'Sht(2)'!$B:$B, MATCH( 'Sht(3)'!$D3, 'Sht(2)'!$C:$C, 0 ) ), TEXT(,) )

字段Program

= IFERROR( INDEX( 'Sht(1)'!$B:$B, MATCH( 'Sht(3)'!$C3, 'Sht(1)'!$C:$C, 0 ) ), TEXT(,) )

字段Maths

=IFERROR( INDEX( 'Sht(2)'!$D:$D, MATCH( 'Sht(3)'!$D3, 'Sht(2)'!$C:$C, 0 ) ), TEXT(,) )

字段Science

=IFERROR( INDEX( 'Sht(2)'!$E:$E, MATCH( 'Sht(3)'!$D3, 'Sht(2)'!$C:$C, 0 ) ), TEXT(,) )  

字段English

=IFERROR( INDEX( 'Sht(2)'!$F:$F, MATCH( 'Sht(3)'!$D3, 'Sht(2)'!$C:$C, 0 ) ), TEXT(,) )  

可以找到有关所用函数的说明 ,并在本页中:
AGGREGATE function
INDEX function
MATCH function