google-apps-script - 如何使用 VLOOKUP 填写每小时日历时间表?

标签 google-apps-script google-sheets filter scripting gs-vlookup

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

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

我想将主时间表选项卡中的数据转换为房间时间表选项卡中的日历 View 。我以为我已经用一些 IF 语句逻辑地解决了这个问题,但我一直在努力。我意识到像这样的开放式问题在这个平台上并不总是受到赞赏,但我不知道如何完成我想要的事情,特别是在没有公式需要很长时间来填充日历的情况下对主时间表的更新,因此非常感谢任何帮助或正确方向的插入。如果我链接的电子表格或我的目标不清楚,我很乐意澄清任何问题。

最佳答案

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

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

0


注意:如果将其转换为单单元格数组公式,则工作表的性能将受到很大影响,因此采用每单元格解决方案

关于google-apps-script - 如何使用 VLOOKUP 填写每小时日历时间表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58090653/

相关文章:

javascript - 如何返回对 JSONP 请求的即时响应并在之后继续处理

google-apps-script - 锁定预填充 URL 字段

google-apps-script - Google Picker - 将文件 ID 返回到我的 Google 脚本

google-apps-script - 确定单列中的最后一行

python - 平滑框过滤器的内核大小

javascript - 在 google sheet JavaScript 中添加一行

validation - 在 Google 电子表格中复制/粘贴数据验证

google-sheets - “按条件过滤”Google 电子表格,按包含和排除的文本进行过滤

java - 谷歌云 : Pubsub subscription filter expression options

html - CSS 调整图像背景而不是内容的亮度