You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计课程表中每门课程对应每位教师的周授课次数

课程表教师授课次数统计高效解决方案

核心思路

先把课程表中「偶数行课程名-奇数行教师」的对应关系转换成结构化明细数据,再基于明细数据完成分组统计,彻底替代逐行手动计算的低效操作。


方法一:Power Query 批量处理(推荐,高效无重复操作)

  1. 导入数据到Power Query
    选中课程表所有数据区域,点击「数据」→「从表格/区域」,确认数据导入编辑器。
  2. 添加分组索引
    在编辑器中点击「添加列」→「索引列」(从1开始),再添加自定义列生成组ID:
    = Number.IntegerDivide([索引]-1, 2)
    
    这样每两行(课程行+教师行)会被分到同一组。
  3. 分组提取课程与教师
    按「组ID」分组,设置操作为「聚合」:
    • 课程名:取组内索引为偶数的行(原表偶数行)内容,示例公式:List.First(List.Select([内容], (x)=>Number.Mod(Record.Field(x,"索引"),2)=0))[课程列标题](替换「课程列标题」为你的实际列名)
    • 教师列表:取组内索引为奇数的行(原表奇数行)内容,用Text.Split(List.First(List.Select([内容], (x)=>Number.Mod(Record.Field(x,"索引"),2)=1))[教师列标题], " ")拆分多教师条目
  4. 展开教师列表
    点击教师列表列的展开按钮,选择「到新行」,把每个教师拆成单独条目。
  5. 加载回Excel
    点击「关闭并上载」,得到包含「课程名」「教师」的明细数据表。
  6. 统计授课次数
    在新表格中用COUNTIFS统计:
    =COUNTIFS(明细表[课程名], A2, 明细表[教师], B2)
    

方法二:动态数组公式(适合Excel 365/2021)

  1. 生成课程-教师明细列
    用公式自动提取所有课程和对应教师,拆分多教师条目:
    =LET(
        课程区域, IF(MOD(ROW($A$1:$Z$70),2)=0, $A$1:$Z$70, ""),
        教师区域, IF(MOD(ROW($A$1:$Z$70),2)=1, $A$1:$Z$70, ""),
        课程列表, TOCOL(课程区域,3),
        教师列表, TOCOL(TEXTSPLIT(TOCOL(教师区域,3), " "),3),
        匹配行, ROUNDUP(SEQUENCE(ROWS(教师列表))/2,0),
        HSTACK(INDEX(课程列表,匹配行),教师列表)
    )
    
    替换$A$1:$Z$70为你的课程表实际区域,公式会自动生成所有课程-教师的明细对。
  2. 生成唯一统计列表
    提取唯一的课程-教师组合:
    =UNIQUE(上面的明细公式)
    
  3. 统计授课次数
    对每个组合用COUNTIFS:
    =COUNTIFS(INDEX(明细区域,,1), A2, INDEX(明细区域,,2), B2)
    

旧版本Excel兼容方案

  1. 用「分列」功能将教师单元格按空格拆分,转置后合并成单列。
  2. 用INDEX+ROW函数匹配对应课程名,生成明细列表。
  3. 用SUMPRODUCT统计次数:
    =SUMPRODUCT((课程区域=A2)*(ISNUMBER(SEARCH(B2,教师区域))))
    

内容的提问来源于stack exchange,提问作者Subhajit Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:18:21