如何在Excel过滤公式中指定多个范围

问题描述 投票:0回答:3

我希望能够使用 Excel 的过滤公式并仅获取特定列作为结果。

例如,我尝试了下面的公式,但失败了。

=FILTER((A:B,D:D),A:A=3475,"")

我怎样才能让它发挥作用?我想要获得过滤结果,其中 A 列中的任何值等于 3475,并且只获得 A、B 和 D 列

excel excel-formula
3个回答
1
投票

您可以使用单个公式,例如:

=TRANSPOSE(CHOOSE({1,2,3},FILTER(A:A,A:A=3475),TRANSPOSE(FILTER(B:B,A:A=3475)),TRANSPOSE(FILTER(D:D,A1:A4=3475))))

但考虑到性能,我会采用评论中提出的两个单独的公式。


1
投票

您需要使用正确的数组作为过滤器函数的数组参数。

我使用了表格,因为使用整列引用效率低下。

例如,如果您只想返回表的第1,2和4列,您可以使用:

=INDEX(Table1,SEQUENCE(ROWS(Table1)),{1,2,4})

所以你的过滤函数可能是:

=FILTER(INDEX(Table1,SEQUENCE(ROWS(Table1)),{1,2,4}),Table1[colA] = myVar)

enter image description here

如果由于某种原因您不想使用Tables,则以下公式也应该有效:

=FILTER(INDEX($A:$D,SEQUENCE(LOOKUP(2,1/(LEN($A:$A)>0),ROW($A:$A))),{1,2,4}),myVar=INDEX($A:$A,SEQUENCE(LOOKUP(2,1/(LEN($A:$A)>0),ROW($A:$A)))))

一样,效率越低:

=FILTER(INDEX($A:$D,SEQUENCE(ROWS($A:$A)),{1,2,4}),myVar=$A:$A)

0
投票

=FILTER(INDEX(array,SEQUENCE(ROWS(array)),{1,2,4}),参考列=必填字段)

索引:您可以从数组中选择您的列。像1、2、4。如果不需要 3 则跳过

序列+行:它将重新提供您的数据直到结束(数组的所有行)

包括:您可以在此处提供您想要过滤的参考列以及您正在查找的单词或字段。

© www.soinside.com 2019 - 2024. All rights reserved.