Excel 2010:按日期查找病房对应医师的公式需求(支持多结果)
医院病房排班汇总公式解决方案(Excel 2010)
场景说明
你的排班表结构如下:
| Date | Dr X | Dr Y | Dr z |
|---|---|---|---|
| Mon | Ward A | Ward B | Ward C |
| Tues | Ward A | Clinic | Ward C |
需求:指定某一日期和目标病房,生成类似「某日,Dr Y负责Ward A」的汇总内容,支持显示多名负责同一病房的医师。
解决方案
1. 单个医师匹配公式
如果仅需查找当天负责目标病房的第一位医师,使用嵌套的INDEX+MATCH组合:
=INDEX($B$1:$D$1,MATCH(G2,INDEX($B$2:$D$3,MATCH(F2,$A$2:$A$3,0),0),0))
- 公式说明:
MATCH(F2,$A$2:$A$3,0):定位指定日期(F2单元格)在排班表中的行号INDEX($B$2:$D$3,行号,0):取出该日期对应的整行排班内容MATCH(G2,该行排班内容,0):找到目标病房(G2单元格)在该行的列号INDEX($B$1:$D$1,列号):取出对应列的医师姓名
2. 多名医师匹配公式(Excel 2010兼容)
Excel 2010无TEXTJOIN函数,需用数组公式拼接多名医师姓名,输入公式后必须按Ctrl+Shift+Enter触发数组计算:
=IFERROR(F2&","&LEFT(CONCAT(IF(INDEX($B$2:$D$3,MATCH(F2,$A$2:$A$3,0),0)=G2,$B$1:$D$1&"、","")),LEN(CONCAT(IF(INDEX($B$2:$D$3,MATCH(F2,$A$2:$A$3,0),0)=G2,$B$1:$D$1&"、","")))-1),"当日无医师负责"&G2)
- 公式说明:
- 核心逻辑:遍历指定日期的排班行,筛选出匹配目标病房的医师姓名,用「、」拼接
IFERROR用于处理无匹配结果的情况,返回友好提示文本- 所有单元格范围需根据你的实际排班表调整(如
$B$1:$D$1是医师姓名行,$A$2:$A$3是日期列)
使用注意事项
- 公式中的绝对引用(带
$)是为了下拉填充时范围不偏移,若需调整范围,直接修改对应单元格区域即可 - 多名医师的公式必须按
Ctrl+Shift+Enter输入,否则无法正确计算数组结果
内容的提问来源于stack exchange,提问作者Sandwell West Birmingham Hopsi
相关产品推荐
相关产品推荐

