哈喽,大家好!我是你们的 Excel 实战派朋友。
新学期伊始,教务处最头疼的莫过于排课了。几百个班级,几十位老师,排在一起简直就是一场巨大的逻辑迷宫。
最怕的是什么?是撞课!
想象一下,张三老师既要在 A2 单元格对应的高一1班上第一节课,又要在 E2 单元格对应的高一4班上同一节课。老师又不会分身术,这显然是不行的。
如果只靠人眼在一行行密密麻麻的名字里扫视,不仅眼睛会瞎,还极易遗漏。今天,我们就用一个简单的 “诊断 + 提取 + 去重” 的 Excel 三步走方案,自动把这些“分身术”老师统统揪出来!
案例分析:谁是“分身”?
我们以上方的表格为例。
请看 A2 单元格,这是“第一节”的课程安排。
对应的老师名单分布在 B2 到 F2 区域:分别是张三、李四、王五、张三、赵六。
你会发现在 B2 和 E2 位置,都出现了“张三”。这就是冲突!我们的目标,是让 Excel 自动在 H2 单元格告诉我们:“这节课有冲突,老师是张三”。
实操步骤
第一步:建立“诊断室”——COUNTIF 数组计数
既然要找重复,首先得知道每个名字出现了几次。虽然我们人眼能看到张三出现了两次,但计算机需要数一遍。
请点击 G2 单元格,输入以下公式:
=COUNTIF(B2:F2, B2:F2)
专家解读:
这里我们利用了 Excel 的“数组思维”。
参数 1 B2:F2:告诉 Excel,统计的范围是第一节课的所有班级。
参数 2 B2:F2:告诉 Excel,我们要数谁?就是这一行里的每一个人。
当你输入公式后,Excel 会在内存中生成一组数据:{1, 1, 1, 2, 1}。
前面的 1 代表李四、王五这些人很安全,只出现了一次。
中间的 2 代表 B2 和 E2 位置的“张三”被抓了个正着,出现了两次。
第二步:精准“捉拿”——FILTER 筛选
既然知道大于 1 的就是冲突,接下来我们就把这些“捣乱分子”过滤出来。这时候就需要 FILTER 函数出场。
请点击 g6 单元格,输入以下公式:
=FILTER(B2:F2, COUNTIF(B2:F2, B2:F2) > 1, "")
参数详细拆解:
第一参数(筛选区域):B2:F2。这是我们的“嫌疑人名单”。
第二参数(筛选条件):COUNTIF(B2:F2, B2:F2) > 1。这是我们的“通缉令”。只有刚才计数结果大于 1 的名字,才会被留下来。
第三参数(空值处理):""。如果这一行没有任何冲突(比如全都是 1),Excel 就会显示空白,而不是报错。
此时,你会发现 g6 单元格显示:张三, 张三。虽然找到了,但列出来两次显得有点啰嗦。
第三步:去伪存真——UNIQUE 去重
为了让名单更干净,我们只需要知道是谁冲突了,而不需要知道他冲突了几次。我们只需要在刚才的公式外面,再套一层“去重壳”。
请在 H2 单元格修改公式为最终版本:
=UNIQUE(FILTER(B2:F2,COUNTIF(B2:F2,B2:F2)>1,""),TRUE)
按下回车,H2 单元格现在干净利落地只显示了一个“张三”。
验证效果
公式做好了,接下来就是见证奇迹的时刻。
检查第一节(A2):l2 显示“张三”。正确,张三分身了。
检查第二节(A3):双击 l2 右下角的填充柄,公式会自动应用到 l3。因为 B3 到 F3 的老师都没重复,l3 单元格保持空白。
检查第三节(A4):下拉到 l4。我们发现 B4 和 C4 都是“钱十一”,公式自动识别并去重,l4 显示“钱十一”。
总结
这套排课防撞车系统的核心逻辑其实很简单:
用 COUNTIF 在 G 列(逻辑中)算出每个人的“危险系数”。
用 FILTER 把系数大于 1 的过滤到 H 列。
用 UNIQUE 把重复的名字洗牌,只留精华。
以后,无论排课表有多少行,只要盯着 H 列,谁在“分身术”一目了然!赶紧把这个技巧转发给你们学校的教务老师吧,这可是救命的干货哦!