2017-09-01 158 views
0

我目前在两个工作簿之间工作。Excel - VLOOKUP返回数组中的每个结果,而不仅仅是第一个

工作簿A我有以下数据。

 A ... D  E  F ... N 
1.| ID  | Name | Desc | Prod | Country| 
2.| 12345 | Apple| Fruit|  10|  US| 
3.| 12346 | Celery|  Veg|  150|  US| 
4.| 12347 | Mint| Herb|  25|  FR| 

我在工作簿乙被使用下面的公式从AHC,其目的是执行VLOOKUP其抓住所有ID的但只有当国家 =“US”。

=VLOOKUP("US", CHOOSE({2,1},Workbook A.xlsx!Table1[ID], Workbook A.xlsx!Table1[Country]), 2, FALSE) 

这个公式很好,但是,我的问题来了,因为公式只会返回数组中的第一个实例。举例来说,如果我有这个公式中工作簿B,柱A它看起来就像这样:

 A 
1.|ID of US| 
2.| 12345 | 
3.| 12345 | 
4.| 12345 | 
5.| 12345 | 
6.| 12345 | 
7.| 12345 | 

我怎么会做这个公式工作,以便返回每个ID它匹配“US”,不仅仅是第一次出现比赛?

+0

快速问题,您的工作簿B的布局是什么?你是否列出了一列中的所有ID,并在下一个列表中显示结果?或者你只是想要一个公式拖下来显示任何符合条件'(国家=“美国”)''的ID?另外,是否可以在工作簿A中使用重复ID,并且您想在工作簿B上显示两次ID? – ian0411

回答

0

B2把这个公式:
您可能需要调整范围的行(我去,直到100)。

={ISERROR(INDEX(D$2:D$100,SMALL(IF(N$2:N$100=$A2,ROW(D1)),ROW(N1))),"")} 

注:
步骤1)将式在细胞B2而不{}
步骤2)一旦式被插入标记整个式并按Ctrl + Shift + Enter所以公式将得到{}
步骤3)将它向下拖动到行所需的位置以获取列表。

+0

我不认为这个解决方案有效。当我使用公式时,它只是返回“真”到B2中。这不能解决我的问题。 – Bastion

相关问题