幸福的爷们 发表于 2021-11-25 13:28:00

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


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

南岭 发表于 2021-12-5 06:56:25

=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-19 04:11:38

=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-22 01:25:32

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

永恒的真爱 发表于 2022-2-3 12:15:03

这个行了,谢谢!

老蒙 发表于 2022-2-4 16:44:13

修改了公式,用这个
=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-2-7 17:45:14

啊,是的,没注意到,如下参考
=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-2-11 02:31:19

收藏了,慢慢学习

你是我缘分最后的恩赐 发表于 2022-2-23 07:33:45

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

晏晓飛 发表于 2022-2-27 15:57:46

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