唠一唠!Excel多条件查询,轻松愉快!

作者:E精精 发布时间: 2022-12-20 16:02 阅读(554)  

关于Excel中多条件的查询,应该是平时问的比较多的问题了,今天系统的来唠一唠!写起来真的是轻松愉快!
常见的可能是这样,根据多个字段来确定一个结果!
首先我想告诉大家的是,所有的多条件查询,都可以转为单条件,如果你数据有一定的规律,可以生成唯一的ID来处理!一般我们可以直接把他们全部组合起来就成一个条件了!

▍S01 – 辅助列法

使用COCANT函数把前面三列合并为一列,这样就变成一个条件了,没有COCANT函数,也可以使用B2&C2&D2来处理,都比较简单!
=CONCAT(B2:D2)
然后你就可以使用VLOOKUP或者INDEX+MATCH等基础函数来轻松实现了!
=VLOOKUP(CONCAT(G2:I2),A:E,5,)
这种方法,虽然需要使用辅助列列,但是对新手来说比较友好,难度较低!推荐新手或者初学者使用!

▍S02 – 进阶处理

如果你已经有一定的函数基础,那么我们可以直接处理!
常见手段可以使用LOOKUP,有多少组条件就“/”多少次就可以了,简单好记!
=LOOKUP(1,0/($A$2:$A$11=F2)/($B$2:$B$11=G2)/($C$2:$C$11=H2),$D$2:$D$11)
当然XLOOKUP函数也是不错的选择,如果你的版本支持!
=XLOOKUP(CONCAT($F$2:$H$2),$A$2:$A$11&$B$2:$B$11&$C$2:$C$11,$D$2:$D$11)
又或者直接使用为筛选而生的FILTER函数,其中的MMULT部分就是判断全部满足条件,也就是结果为3!
=FILTER(D2:D11,MMULT(N(A2:C11=F2:H2),{1;1;1})=3)
当然你也可以使用传统的INDEX+MATCH,其实也是支持的!解法何其之多!
=INDEX(D2:D11,MATCH(CONCAT(F2:H2),A2:A11&B2:B11&C2:C11,))

▍S03 – 筛选也可以是求和

很多时候,我们要的结果是数值,且数据是聚合过的,也就是多条件下没有重复内容,那么SUMIFS函数更加方便!
=SUMIFS(D:D,A:A,F2,B:B,G2,C:C,H2)

▍S04 – 多条件多结果

如果多条件下还有多个结果,要如何处理,那么传统的VLOOKUP、INDEX+MATCH这些就不太适合了,毕竟他们只能返回首个满足条件的结果!
这个时候有两个不错的套路,一个就是“万金油”通用解法!
▼万金油解法-通用性好

=IFERROR(

    INDEX(

        D:D,

        SMALL(

            IF(

                MMULT(

                    N($A$2:$C$11 = $F$2:$H$2),

                    {1; 1; 1}

                ) = 3,

                ROW($D$2:$D$11)

            ),

            ROW(A2)

        )

    ),

    “”

)

如果你的版本较高,我们就可以使用FILTER函数,再简单一些,轻松愉快!

=FILTER(

    D2:D11,

    MMULT(

        N($A$2:$C$11 = $F$2:$H$2),

        {1; 1; 1}

    ) = 3

)

如果你觉得理解不了MMULT函数,那么你也可以这样写,都是可以的

=FILTER(D2:D11,(A2:A11=F2)*(B2:B11=G2)*(C2:C11=H2))

看完本教程,我不允许还有不会多条件查询的!如果怕忘记,是不是收藏、转发备忘一下!


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注