方能 发表于 2021-11-25 13:28:00

求一个多条件查询且排序的公式


如图:要在上面数据表中利用公式查询指定班级的学生姓名:
1、若K5单元格选择的是“在籍”则班级按C列数据查找;若K5单元格选择的是“就读”,则班级按D列数据查找;
2、查询出的学生姓名按H列年级名次排序,若名次并列按自然顺序。

樱桃熟了 发表于 2021-11-27 10:34:30

=LOOKUP(,0/(SMALL(--TEXT((IF($K$5="就读",$D$2:$D$28,$C$2:$C$28)=$L$5)*$H$2:$H$28,"0;;100;")+ROW($2:$28)*1%%,ROW(A1))=($H$2:$H$28+ROW($2:$28)*1%%)),$E$2:$E$28)数组公式

无肌耐活 发表于 2021-12-2 21:48:20

=IFERROR(INDEX(E:E,MOD(SMALL(IF((OFFSET($C$2,,MATCH($K$5&"*",$C$1:$D$1,0)-1,COUNT(C:C))=$L$5)*($J$5=$A$2:$A$28),($H$2:$H$28)/1%%+ROW($H$1:$H$27),""),ROW(A1)),10^4)+1,),"")

学兔斯基咪眼看世界 发表于 2021-12-6 09:52:09

但是这个公式没有筛选不同年级的数据

会飞的金猴 发表于 2021-12-8 14:48:22

这个行了,谢谢!

男人爱猫不是病 发表于 2021-12-29 22:47:48

修改了公式,用这个
=IFERROR(INDEX(E:E,MOD(SMALL(IF((OFFSET($C$2,,MATCH($K$5&"*",$C$1:$D$1,0)-1,COUNT(C:C))=$L$5)*($J$5=$A$2:$A$28),($H$2:$H$28)/1%%+ROW($H$1:$H$27),""),ROW(A1)),10^4)+1,),"")

陈月官 发表于 2022-1-9 16:07:57

啊,是的,没注意到,如下参考
=IFNA(LOOKUP(,0/(SMALL(--TEXT((IF($K$5="就读",$D$2:$D$28,$C$2:$C$28)=$L$5)*$H$2:$H$28*($A$2:$A$28=$J$5),"0;;100;")+ROW($2:$28)*1%%,ROW(A1))=($H$2:$H$28+ROW($2:$28)*1%%)),$E$2:$E$28),"")

研酒生 发表于 2022-1-15 19:17:49

收藏了,慢慢学习

铌克 发表于 2022-1-21 11:13:33

数据透视表~~~~~~~~~~~

夜来夜匪 发表于 2022-2-26 03:31:27

谢谢。但数据透视表生成的表格不好控制打印。
页: [1]
查看完整版本: 求一个多条件查询且排序的公式