使用 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
我先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