Google Sheets场景下如何按顺序将患者列表轮询分配给医生列表
Google Sheets轮询分配患者给医生的实现方法
首先先确认你的表格结构预设:
- 医生列表单独放在一个固定区域(比如「医生表」的A列,A1为表头「医生姓名」,A2开始依次录入医生姓名,后续新增医生直接在该列下方追加即可)
- 患者列表放在「患者表」的A列,A1为表头「患者姓名/信息」,A2开始按你要求的分配顺序从上到下排列,分配结果要填在B列
自动溢出方案(无需下拉,新增患者/医生自动更新)
在患者表的B2单元格直接输入以下公式即可,所有患者的分配结果会自动填充:
=BYROW(SEQUENCE(COUNTA(A2:A)), LAMBDA(seq, INDEX(TOCOL(医生表!A2:A,1), MOD(seq-1, COUNTA(TOCOL(医生表!A2:A,1)))+1)))
逻辑说明
TOCOL(医生表!A2:A,1)会自动过滤掉医生列表里的空单元格,动态统计当前有效的医生总数,后续新增/删除医生都不需要修改公式MOD(seq-1, 医生总数)+1是轮询分配的核心逻辑:按患者从上到下的顺序,依次匹配第1、2、3、4位医生,轮到第5位患者时自动绕回第1位医生,以此往复BYROW会自动遍历所有有效患者,匹配对应医生,结果自动向下溢出,后续新增患者也会自动完成分配
手动下拉方案
如果不需要自动溢出,想手动控制分配范围,在B2单元格输入以下公式,按住单元格右下角向下拉到对应行即可:
=INDEX(TOCOL(医生表!A2:A,1), MOD(ROW(A2)-2, COUNTA(TOCOL(医生表!A2:A,1)))+1)
注意事项
- 如果医生和患者在同一个工作表,把公式里的
医生表!去掉,直接写对应列的范围即可,比如医生放在当前表的D2:D,就把医生表!A2:A替换为D2:D - 如果需要调整轮询的起始匹配医生,比如第一位患者要分配给第3位医生,把公式里
MOD()后面的+1改成+3即可 - 如果你的Google Sheets版本不支持LAMBDA函数,使用手动下拉方案即可正常运行
内容的提问来源于stack exchange,提问作者JOY
相关产品推荐
相关产品推荐

