TOCOI+DROP+FILTER+COUNTIF筛选只住一个人的学生宿舍

  1. 场景再现

在 Excel表中有30多列数据,以班级为字段名,以每列数据以:楼号+教室号+姓名命名,现在学校盘查宿舍,要求找出只有一个人住的宿舍。我们用TOCOI+DROP+FILTER+COUNTIF分步求出。

  1. 解决办法

2.1 TOCOL+DROP列数据转行数据

为了方便计算,我们需要把sheet1中的所有数据转为一列,起点为A列A2单元格,终点为AM列最后一个非空单元格。在Sheet2的A1单元格应用下面公式:

💡

=TOCOL(DROP(Sheet1!A:AM,1),1)

TOCOL(Sheet1!A:Z,1) 的作用是将 Sheet1 中 A 到 AM列的所有非空单元格转换为一列。如果你想让它从第二行开始(即忽略第一行),可以使用DROP函数:TOCOL(DROP(Sheet1!A:Z,1),1),其功能是:将 A 到AM列的整个范围作为数组,并删除前 1 行。得到以下数据。

2.2 FILTER+COUNTIF过滤出只有一个人的宿舍

接下来用FILTER进行筛选,条件是用COUNTIF计算宿舍号(每个单元格前5位)出现次数为1的行记录使用下面公式:

💡

=FILTER(A:A,COUNTIF(A:A,LEFT(A:A,5)&"*")=1)

LEFT(A:A,5)&"*" 表示在提取的前5位字符后面加上通配符 *,即以宿舍号为条件来计算相同宿舍号的单元格的数量,当数量为1时返回的是True,就可以通过FILTER筛选出来。

2.3 公式合并

还可以用LET设置变量X,整合2.1和2.2的两个公式,实现一键求出所有符合要求的数据。公式如下:

💡

=LET(

x, TOCOL(DROP(Sheet1!A:AM,1),1),

FILTER(x, COUNTIF(x, LEFT(x,5) & "*") = 1)

)

x:存储从Sheet1的A:AM列提取的所有非空单元格内容;

LEFT(x,5) & "*":取x中每个元素的前5位作为筛选条件;

COUNTIF(x, ...) = 1:判断x中是否有且仅有1个条目以前5位开头;

FILTER(x, ...):筛选出符合条件的唯一值。

这样整合后,一行公式就能直接处理x变量生成的数据了。

  1. 写在最后

本次案例通过将多列数据转换为单列,再利用宿舍号(前5位字符)的出现次数,筛选出唯一出现的记录,从而找出只有一个人住的宿舍。最后通过LET可以把前一公式的结果引用到下一公式中,进一步简化了计算流程,逻辑变得更加清晰。

如果想筛选出有2个人的宿舍就可把COUNTIF中最后的数字1改为2即可,这样不仅可以查到宿舍号,还可以查到宿舍里住的人,为后期调整宿舍人数提供了便利。

2026年文章列表

GROUPBY+HSTACK组合:让补考信息统计事半功倍

建议增加WPS社区访问入口

WPS多维表自动化流程失败问题排查与解决

WPS表格序号自动填充的四种方法,最后一种你可能没用过

打造专业模板:WPS文字型窗体域实战指南

职场小白如何一键安装Windows系统

WPS多维表搭配Python脚本实现信息定时群发

WPS多维表+AI:化解燃气表截图批量收集、识别和计算难题

WPS知识库建设与应用——以WPS多维表知识库为例

视频教程:批量下载公众号内图片并转化为高质量PDF技巧

告别人工评阅!WPS多维表构建英语作文AI智能评分平台

WPS单元格中如何分别设置中英字体为不同字号

OFFSET动态可视化:WPS表格灵活提取多行多列数据

WPS表格中快速实现双语语料上下/左右格式互换

WPS官方公众号、视频号、小程序汇总

视频教程:如何在WPS和OFFICE中插入网址二维码

一网打尽!WPS表格序号添加的12种方法

让WPS软件起飞——配置优化技术盘点

WPS在语料双语对齐中的应用

2025年文章列表

https://www.kdocs.cn/l/ckbnQ4H0SlgU

加利福尼亚
浏览 149
收藏
5
分享
5 +1
4
+1
全部评论 4
 
user-29378
很好
· 重庆
1
回复
 
亂雲飛渡
亂雲飛渡

WPS寻令官

学习
· 广东省
1
回复
 
fbfbzz
学习了
· 江苏省
1
回复
李攀登
感谢你的留言
· 加利福尼亚
回复