EXCEL中如何返回满足条件的多个单元格数据?

例如:住宿生信息表里有一列是宿舍号,有一列姓名,能否将住在C203的多个同学,在一个行的多个单元格中列出来,图一是sheet1的信息表,能否在sheet2一行中多个单元格里分别列出住C203的学生名字

可以啊,不复杂。

sheet1的信息表C列为学生姓名,E列为宿舍号

sheet2A列为宿舍号,B:F为填入姓名。

那么宿舍号使用公式:

=IFERROR(INDEX(Sheet1!$E:$E,MATCH(0,COUNTIF(A$1:A1,IF(Sheet1!$E:$E<>"",Sheet1!$E:$E,"宿舍号")),)),"")

姓名使用公式:

=INDEX(Sheet1!$C:$C,SMALL(IF(Sheet1!$E:$E=$A2,ROW($1:$11),65536),COLUMN(A1)))&""

以上公式均为数组公式,使用Ctrl+Shift+Enter结束输入。姓名公式右拉,下拉即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-08

=IFERROR(INDEX($B$1:$B$5,SMALL(IF($C$1:$C$5=$E1,ROW(C$1:C$5),4^8),COLUMN(A1)),),"")

输入公式右拉下拉

数组函数Ctrl+shift+enter三键结束

追问

请问一下,最后面COLUMN(A1)是什么含义呢?

大佬,想请问一下您公式中的最后面那个A1是什么含义?是可以换成其他空的单元格吗?=IFERROR(INDEX($B$1:$B$5,SMALL(IF($C$1:$C$5=$E1,ROW(C$1:C$5),4^8),COLUMN(A1)),),""),而且试了一下,发现漏了一个“陈航”和“陈禹璋”,并且后面C206的没有出现学生名字

追答

COLUMN(A1)=1,右拉后就是1,2,3.。。。是用来配合SMALL选取第几个最小值的,必须是从A1即1开始,我看你的公式是从A5开始,就是从5开始,那么前面4个多会漏掉。

本回答被提问者采纳
第2个回答  2021-06-08
都放入一个单元格内
=textjoin(",",,if(sheet1!e$2:e$100="C203",sheet1!c$2:c$100,""))
下拉填充
相似回答