如何使用 VLOOKUP 填写每小时日历表?

How do I use VLOOKUP to fill out an hourly calendar schedule?

我没有输入我正在处理的函数,因为它相当长且随意,没有它引用的列,我提供了我的电子表格的简化模型 here 。一定要复制一份,不要直接编辑原件。如果我需要删除这个 link,我会的。

本质上,我试图获取另一方已经创建的时间表,并根据 VLOOKUP 搜索键将其显示在每小时日历视图中。在我上面 linked 的示例中,我在 Master Schedule 选项卡中创建了一个课堂时间表,其中包括房间、科目、教师以及开始和结束时间,以及日期。我为当天和前一天安排了房间,因为前一天的一些结束时间已经过了午夜,因此我想将它们包含在当天的日历视图中,如果它们 运行 进入清晨。在同一个选项卡中,我有一个 VLOOKUP 公式,其中房间号作为搜索键。公式这么长的原因是因为我必须考虑是否有多个房间由逗号“,”或正斜杠“/”分隔,并且它是从我的另一个 Stack Overflow 问题提供的解决方案中得出的。它完成了工作,但如果有一个不那么复杂的方法,我洗耳恭听。

我想将 Master Schedule 选项卡中的数据转换为 Room Schedule 选项卡中的日历视图。我以为我已经通过一些 IF 语句从逻辑上解决了这个问题,但我一直在努力奋斗。我意识到像这样的开放式问题在这个平台上并不总是受欢迎,但我对如何完成我想要的东西感到茫然,尤其是在没有公式需要很长时间来填充日历的情况下主计划的更新,因此非常感谢任何帮助或正确方向的推动。如果我 link 或我的 objective 的电子表格不清楚,我很乐意澄清任何事情。

粘贴到C2单元格中,向下拖动,然后向右拖动:

=IFERROR(FILTER('Master Schedule'!$F:$F&CHAR(10)&'Master Schedule'!$D:$D, 
 REGEXMATCH('Master Schedule'!$E:$E, "^"&$A2&"$"), 
 HOUR('Master Schedule'!$B:$B)<=HOUR(INDEX(SPLIT(C, "-"), 1, 1)), 
 HOUR('Master Schedule'!$C:$C)>=HOUR(INDEX(SPLIT(C, "-"), 1, 1)),
 'Master Schedule'!$A:$A=TODAY()))


注意: 如果这将变成一个单元格的数组公式,sheet 的性能将受到很大影响,因此这个每个单元格的解决方案