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

基于参训人员可用日期的Excel培训排班方案咨询(含优先级规则)

解决方案:Excel 内部培训排班实现

一、优先处理仅选择单个日期的参训人员

这部分是核心优先级,必须先完成:

  1. 计算每人可选日期数量:在空白列(比如F列)的F2单元格输入公式,下拉填充至所有行:
    =COUNTIF(B2:E2,"是")  // 若可用状态用1/0表示,替换为=SUM(B2:E2)
    
  2. 标记单日期人员的目标日期:在G列G2单元格输入公式,下拉填充:
    =IF(F2=1,INDEX($B$1:$E$1,MATCH("是",B2:E2,0)),"")  // 数字状态替换为MATCH(1,B2:E2,0)
    
  3. 按日期分配名额:
    • 按G列筛选出每个日期的人员,比如筛选“第1天”,取前10人标记为已安排(可在H列设“已安排”标识)
    • 若某日期单报名人数超过10,超出人员需纳入后续多日期人员池重新分配(若需求要求必须安排单日期人员,可考虑调整每日上限,否则按此处理)

二、分配多日期可选的剩余人员

使用Excel的规划求解工具解决约束分配问题:

  1. 启用规划求解:
    打开「文件」>「选项」>「加载项」>「转到」,勾选「规划求解加载项」后确定。
  2. 设置变量区域:
    在空白区域(比如H2:K[最后一行]),每个单元格代表对应人员是否被安排到该日期(1=安排,0=不安排)。
  3. 配置约束条件:
    打开「数据」选项卡的「规划求解」,添加以下约束:
    • 每个人员的H-K列之和 = 1(每人仅参训1次)
    • 每个日期的列总和 ≤ 10(每日参训上限)
    • 若某人员对应日期不可用(如B2为“否”),则H2 = 0(以此类推所有日期的可用约束)
  4. 运行求解:
    目标可设为「最大化」任意一个日期的列总和(或直接设为无目标,仅满足约束),点击「求解」即可得到分配结果。

三、后续验证

完成分配后,可通过以下公式验证:

  • 验证每日人数:=SUM(H:H)(对应第1天),确保≤10
  • 验证每人仅安排1次:=SUM(H2:K2),确保所有行结果为1或0(0代表未安排,若需全员安排需调整约束或上限)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:52:30