如何通过匹配另一表格的列来填充Excel时间表?
Excel多条件匹配填充时间表问题

问题说明
- 左侧规划表:逐行记录课程的日期(Day列)、时间(Time列)及对应人员缩写(Initials列)
- 右侧目标时间表:需要根据「日期列标题+时间行值」的组合,匹配规划表中的对应记录,填充缩写
- 示例:时间表中
TUESDAY列与09:00-09:30行交叉的单元格,应匹配规划表K3(Day=TUESDAY)+L3(Time=09:00-09:30)的记录,填充C3的AB - 尝试过多种INDEX/MATCH多条件公式,均未得到正确结果
可行解决方案
方法1:INDEX+MATCH多条件匹配(兼容全版本Excel)
假设规划表数据范围为C3:X(X为数据最后一行),时间表的日期标题在N$2、时间行值在$M3,在目标单元格输入:
=IFERROR(INDEX($C$3:$C$X, MATCH(1, ($K$3:$K$X=N$2)*($L$3:$L$X=$M3), 0)), "")
注意:旧版Excel需按
Ctrl+Shift+Enter作为数组公式执行;新版Excel直接回车即可。IFERROR用于无匹配时返回空值,避免#N/A错误。
方法2:XLOOKUP多条件匹配(仅Excel 365/2021及以上)
公式更简洁,无需数组操作:
=XLOOKUP(1, ($K$3:$K$X=N$2)*($L$3:$L$X=$M3), $C$3:$C$X, "")
直接回车即可,无匹配结果时返回空值。
排查要点
- 确保规划表与时间表的日期、时间文本完全一致(无大小写、空格差异)
- 公式中使用绝对引用(
$)锁定规划表的数据范围,避免拖动公式时引用偏移 - 若规划表存在重复的Day+Time组合,公式会返回第一个匹配项
内容的提问来源于stack exchange,提问作者Guy Cordran
相关产品推荐
相关产品推荐

