使用Vlookup或INDEX-MATCH返回包含各种列数据的多行

时间:2016-05-05 19:20:05

标签: excel vlookup

现在我有一个包含2张的excel文件,我需要根据一个标准将一些数据从sheet1拉到sheet2 - sheet1中列A中的文本包含来自sheet2的A2中的某些文本字符串。与此同时,我还必须从找到文本字符串的那些行中的其他列中提取数据。但是,Vlookup仅返回第一个实例。由于该文件是保密的,我为此创建了一个备份。

Sheet 1中

Classes Taken   Name    Gender  Age

Math,Physics,Chemistry, Literature  Joseph  Male    16

Chinese, History, Philosophy, Politics  Alice   Female  17

Philosophy, Math, Physics   Erica   Female  16

Chinese, Biology, Statistics    Evan    Male    18

Sheet 2中

Philosophy  (Lookup)

Name    Gender  Age

如果我想要在sheet2中显示哲学课程的人的信息怎么办。

谢谢!

2 个答案:

答案 0 :(得分:0)

非阵列解决方案

<强> Sheet 1中
- 在Sheet1上输入表格数据,如下所示:
Sheet1 Thumbnail Image

<强> Sheet 2中
- 单元格A1包含查找值: Philosophy - 单元格A2:C2包含标题行数据:Name Gender Age
- 在单元格A3中,插入此公式:
=INDEX(Sheet1!$A2:$D2,MATCH("*"&$A$1&"*",Sheet1!$A2:$A2,0),MATCH(A$2,Sheet1!$A$1:$D$1,0))
- 按 ENTER
- 复制到C3,然后复制到C6以获得此处显示的结果:
Sheet2 Thumbnail Image

答案 1 :(得分:0)

ARRAY SOLUTION

<强> Sheet 1中
- 在Sheet1上输入表格数据,如下所示:
Sheet1 Thumbnail Image

<强> Sheet 2中
- 单元格A1包含查找值: Philosophy - 单元格A2:C2包含标题行数据:Name Gender Age
- 在单元格A3中,插入此公式:
=IFERROR(INDEX(Sheet1!B$2:B$5,SMALL(IF(ISNUMBER(SEARCH($A$1,Sheet1!$A$2:$A$5)),ROW(Sheet1!B$2:B$5)-ROW(Sheet1!B$2)+1),ROWS(Sheet1!$1:1))),"")
- 按 CTRL + SHIFT + ENTER
- 复制到C3,然后复制到C6以获得此处显示的结果:
Sheet2 Thumbnail Image

请注意
- 此公式包含IFERROR函数,该函数仅适用于Excel for PC 2007或更高版本。它也适用于Excel for Mac 2011或更新版本(根据Microsoft的文档) - 此公式也是ARRAY,如果您正在使用大型数据集,这可能会降低速度 - 每次编辑此公式时,按 CTRL + SHIFT + ENTER 再次确认。