Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何使用值列表执行VLOOKUP_Excel - Fatal编程技术网

Excel 如何使用值列表执行VLOOKUP

Excel 如何使用值列表执行VLOOKUP,excel,Excel,我有两张excel表格。 在表2中,我有一个包含以下字段的表: 姓名、姓氏、城市、年龄 在sheet1中,我必须设置字段CITY,我希望该字段下的表将包含sheet2中具有选定城市的所有行 如果我做一个VLOOKUP,我可能只得到第一排桌子 例如: A | B | C | D NAME | SURNAME | CITY | AGE Alex | Green | Rome | 18 Max | Brown | Rome |

我有两张excel表格。 在表2中,我有一个包含以下字段的表: 姓名、姓氏、城市、年龄

在sheet1中,我必须设置字段CITY,我希望该字段下的表将包含sheet2中具有选定城市的所有行

如果我做一个VLOOKUP,我可能只得到第一排桌子

例如:

A      | B       | C       | D 
NAME   | SURNAME | CITY    | AGE
Alex   | Green   | Rome    | 18
Max    | Brown   | Rome    | 21
Mary   | White   | Milan   | 33
George | Violet  | Rome    | 27
在第1页中,我有

A      | B       | C       | D
CITY   | Rome
NAME   | SURNAME | CITY    | AGE
VLOOKUP| VLOOKUP | VLOOKUP | VLOOKUP
VLOOKUP| VLOOKUP | VLOOKUP | VLOOKUP

VLOOKUP = VLOOKUP($B$2;Sheet2!A:D;1;0) --> 
我想要亚历克斯、马克斯、乔治;我有亚历克斯,亚历克斯,亚历克斯

没有宏,我怎么做


感谢您提供了一个简单的数据配置,如图1中的示例pu!A3,并在右侧和下方填充

=INDEX(Sheet2!A:A,AGGREGATE(15,6,ROW($2:$9)/(Sheet2!$C$2:$C$9=$B$1),ROW(1:1)))
=INDEX(Sheet2!$A:$D, AGGREGATE(15, 7, ROW($2:$9)/(Sheet2!$C$2:$C$9=$B$1), ROW(1:1)), MATCH(A$2, Sheet2!$1:$1, 0))
对于更复杂的数据配置和检索,请参见表1!A3,然后从右向下填充

=INDEX(Sheet2!A:A,AGGREGATE(15,6,ROW($2:$9)/(Sheet2!$C$2:$C$9=$B$1),ROW(1:1)))
=INDEX(Sheet2!$A:$D, AGGREGATE(15, 7, ROW($2:$9)/(Sheet2!$C$2:$C$9=$B$1), ROW(1:1)), MATCH(A$2, Sheet2!$1:$1, 0))


使用IFERROR函数“包装器”可避免在要检索的数据不足时显示工作表错误。

高级筛选?否则,它将是一大堆数组类型的公式,取决于数据大小,这将导致计算速度大大降低,因为某些时候可能会使Excel崩溃。
VLOOKUP
不起作用“Rome”必须在Sheet2的A列中。为什么反对vba,就像在工作表更改事件中使用高级过滤器一样,将是快速而自动的。我在这台电脑上没有Excel可供检查,但您可以使用OFFSET()和ROW()函数向下移动列,这样您就不会总是选择ALEXIt,因为它确实有效。只是一件小事:真正的表有5000行。我只能提取前9行。如果我将行($2:$9)更改为行($2:$5000)和表2$C$2:C$9放入表2中$C$2:C$5000它不起作用。我该怎么办?