使用公式筛选数组(无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))