TL;DR
-
Option1:
=FILTER(FILTER(A1:G7,K1:K7=K1),{0,1,0,1,0,0,0})
-
Option2: - 参考
=FILTER(INDEX(tblData,SEQUENCE(ROWS(tblData)),{4,3,5}),tblData[Customer Name]=I3)
-
Option3: - 罗里 回答了
=FILTER(CHOOSE({1,2},B1:B7,D1:D7),$K$1:$K$7=$K$1)
-
Option4: - P.b 评论
=FILTER(FILTER($A$1:$G$7,$K$1:$K$7=$K$1),(COLUMN(A:G)=COLUMN(B:B))+(COLUMN(A:G)=COLUMN(D:D)))
解释
Option 1
你可以嵌套原来的FILTER
内部功能another FILTER
函数并指定一个数组1
's and 0
提及您需要哪一列以及不需要哪一列。
例如,在上面的问题中,如果我只想要 B 列和 D 列,我可以这样做:
=FILTER(FILTER(A1:G7,K1:K7=K1),{0,1,0,1,0,0,0})
由于 B 和 D 是第 2 列和第 4 列,因此您需要指定一个1
在数组中的那个位置
同样,如果您想从中过滤列C:K
并且仅输出列C
, D
& G
,那么你的公式将是:
=FILTER(FILTER(C1:K7,M1:M7=M1),{1,1,0,0,1,0,0,0,0})
优点和缺点 - 选项 1
- 这个公式是最简单的,也容易理解
- You can NOT更改输出顺序。您只能按原始顺序隐藏/取消隐藏
- 您可以将其应用于多个列的范围,而无需进行太多更改
Option2
另一种看起来很复杂的方法是:
请注意,此方法允许您更改输出列的顺序。您可以参考以下网站有关其工作原理的详细说明。
=FILTER(INDEX(tblData,SEQUENCE(ROWS(tblData)),{4,3,5}),tblData[Customer Name]=I3)
优点和缺点 - 选项 2
- 这个公式看起来很复杂,但是一旦理解了逻辑就很简单了
- 您可以根据需要更改输出列的顺序
- 您可以将其应用于多个列的范围,而无需进行太多更改
选项3
这实际上是罗里提供的答案
=FILTER(CHOOSE({1,2},B1:B7,D1:D7),$K$1:$K$7=$K$1)
优点和缺点 - 选项 3
- 这个公式很复杂,尤其是返回一系列连续列时
- 您需要单独明确提及每个输出列
- 您可以根据需要更改输出列的顺序
- 将其应用于输出多个连续范围会变得很棘手(例如,您不能替换
B1:B7
with B1:C7
在上面的公式中)
选项4
基于下面 P.b 的评论
=FILTER(FILTER($A$1:$G$7,$K$1:$K$7=$K$1),(COLUMN(A:G)=COLUMN(B:B))+(COLUMN(A:G)=COLUMN(D:D)))
优点和缺点 - 选项 4
- 这个公式很简单,与选项 1 有点相似。
- You can NOT更改输出顺序。您只能按原始顺序隐藏/取消隐藏
- 您可以将其应用于多个列的范围,而无需进行太多更改
有一个类似的问题被问到参考谷歌表格。但 Google Sheet 也有Query
明确支持选择特定列的函数