我不允许还有人不会Excel多条件查询!

我请教下,我不允许还有人不会Excel多条件查询!
最新回答
万能女神

2024-11-28 13:13:38

关于Excel中的多条件查询,这个问题在日常工作中经常被提及。今天,我们将系统地探讨一下这一话题,写起来真是轻松愉快!

通常情况下,多条件查询是根据多个字段来确定一个结果。

首先,我想告诉大家的是,所有的多条件查询都可以转换为单条件查询。如果你的数据有一定的规律,可以生成唯一的ID来处理。一般我们直接将它们全部组合起来就成为一个条件了。

▍S01 - 简接法

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

▍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))

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

▼系统提升Excel办公技▼

精品模版及教程大全

▍模板 | 多文件取数神器V5.0

▍模板 | 文件(夹)综合管理工具

▍模板 | 多选录入神器V4.7版本!

▍模板 | Excel文档批量打印助手

▍代码 | VBA常用代码整理合集

▍VIP | Excel系统学习方案