首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Excel中筛选多个条件上的行和列

如何在Excel中筛选多个条件上的行和列
EN

Stack Overflow用户
提问于 2021-07-30 05:56:38
回答 2查看 378关注 0票数 1

作为一个例子,请参阅下面的数据。

我可以逐行FILTER

代码语言:javascript
复制
=FILTER($A$1:$E$9,
((ISNUMBER(SEARCH("b",$A$1:$A$9)))+
(IFERROR($A$1:$A$9="List",FALSE))+
(IFERROR($A$1:$A$9="",FALSE))))

我还可以按列使用以下内容进行FILTER

=FILTER($A$1:$E$9, $A$1:$E$1="1600m")

但是,当我试图同时过滤两者时,我就得到了#VALUE!

以下是我的两次尝试:

1)

代码语言:javascript
复制
=FILTER($A$1:$E$9,
((ISNUMBER(SEARCH("b",$A$1:$A$9)))+
(IFERROR($A$1:$A$9="List",FALSE))+
(IFERROR($A$1:$A$9="",FALSE)))*
($A$1:$E$1="1600m"))

代码语言:javascript
复制
=FILTER($A$1:$E$9,
((ISNUMBER(SEARCH("b",$A$1:$A$9)))+
(IFERROR($A$1:$A$9="List",FALSE))+
(IFERROR($A$1:$A$9="",FALSE))*
($A$1:$E$1="1600m")))

我还考虑过使用LET先按列进行筛选,然后逐行过滤已经筛选过的数组,但我不相信我能够引用函数中的特定行。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-30 06:28:21

也许您可以索引您的行筛选器:

代码语言:javascript
复制
=INDEX(
    FILTER(A1:E9,(ISNUMBER(SEARCH("b",$A$1:$A$9))+
           (IFERROR($A$1:$A$9="List",FALSE))+
           (IFERROR($A$1:$A$9="",FALSE)))),
    , MATCH( "1600m", $A$1:$E$1,0) )

如果您不想要标题:

代码语言:javascript
复制
=INDEX(
    FILTER(A1:E9, ISNUMBER(SEARCH("b",$A$1:$A$9) +
           IFERROR($A$1:$A$9="List",FALSE) +
           IFERROR($A$1:$A$9="",FALSE))),
    , MATCH( "1600m", $A$1:$E$1,0) )

作为P.b。建议的嵌套筛选器可以用头传递结果:

代码语言:javascript
复制
=FILTER( FILTER( $A$1:$E$9, $A$1:$E$1="1600m"),
            (ISNUMBER(SEARCH("b",$A$1:$A$9)) +
            (IFERROR($A$1:$A$9="List",FALSE)) +
            (IFERROR($A$1:$A$9="",FALSE))) )

如果输出需要如您的图像的H1:E5所示,则这个(经过过度设计的示例)可以交付它,以防万一:

代码语言:javascript
复制
=LET(t, $A$1:$E$9, list, $A$1:$A$9, horse, "b", raceDist, "1600m",
      raceHeader, INDEX(t, 1, ),
      rf, FILTER(t, ISNUMBER(SEARCH(horse,list)) +
                            IFERROR(list="List",FALSE) +
                            IFERROR(list="",FALSE) ),
      idxR, SEQUENCE(ROWS(rf)),
      rf_rowLabels, INDEX(rf,idxR,{1,2}),
      target, INDEX( rf, , MATCH( raceDist, raceHeader, 0 ) ),
      IFERROR( INDEX(SUBSTITUTE(INDEX(rf,SEQUENCE(ROWS(rf)),{1,2}),0,""), idxR,{1,2,3}),
               target )  )

编辑了第一个替补--我忘了它还在那里。谢谢P.b.

票数 2
EN

Stack Overflow用户

发布于 2021-07-30 08:40:08

=FILTER( FILTER($A$1:$E$9,($A$1:$E$1="1600m")+($A$1:$E$1="Event:")+($A$1:$E$1="")), ((ISNUMBER(SEARCH("b",$A$1:$A$9)))+ (IFERROR($A$1:$A$9="List",FALSE))+ (IFERROR($A$1:$A$9="",FALSE))))首先是列标题的条件,然后是行的条件。

PS空单元格显示为0

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68586092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档