使用公式筛选数组(无VBA)

是否有可能使用单一公式筛选数组(不使用自动筛选器,VBA或其他列)?

例如,我有以下电子表格:

A | B | C -------------------- 1| ID | Class | Value 2| 1 | A | V1 3| 1 | B | V2 4| 2 | A | V3 5| 3 | B | V4 6| 3 | B | V5 

我想在VLOOKUP中使用这个数组的一个子集。 也就是说,我只想匹配类为“B”的那些行。 所以我希望能使用类似下面的东西

 =VLOOKUP(A3, FILTER_FUNC(A:C, B="B"), 3, false) 

其中FILTER_FUNC是某种types的函数或expression式,它返回一个只包含符合条件的行的数组。

 =VLOOKUP(A2,IF(B1:B3="B",A1:C3,""),1,FALSE) 

Ctrl+Shift+Enter进入。

如果你只想要第一个“B”值,你可以把单元格地址改为“B”,如果你想使其更通用。

 =INDEX(A2:A6,SUMPRODUCT(MATCH(TRUE,(B2:B6)="B",0)),1) 

要基于两列使用这个,只需在匹配内连接:

 =INDEX(A2:A6,SUMPRODUCT(MATCH(TRUE,(A2:A6&B2:B6)=("3"&"B"),0)),1) 

听起来就像你只是想做一个经典的双列查找。 http://www.dailydoseofexcel.com/archives/2009/04/21/vlookup-on-two-columns/

对此的解决scheme吨,最简单的可能是以下(不需要数组公式):

 =SUMPRODUCT((Lookup!A:A=Param!A1)*(Lookup!B:B=Param!B1)*(Lookup!C:C)) 

要翻译您的具体示例,您可以使用:

 =SUMPRODUCT((A1:A3=A2)*(B1:B3="B")*(C1:C3))