如何在特定条件下使用 FILTER 创建以下 ARRAYFORMULA?

How to make following ARRAYFORMULA with FILTER in certain condition?

我做了一些公式来在以下条件下查找日期和时间,有开始日期和时间结束日期和时间

IF(REGEXMATCH(A2,"Auto"),IFERROR(VLOOKUP(B2,FILTER($H:$L,$H:$H=B2,$K:$K<=C2+D2,$L:$L>=C2+D2),4,0),VLOOKUP(B2&C2,$G:$K,5,0)),VLOOKUP(B2,FILTER($H:$L,$H:$H=B2,$K:$K<=C2+D2,$L:$L>=C2+D2),4,0))

但是,当我必须复制粘贴/向下拖动每一行的公式时,这真的很费力和时间,因为我有数千个数据要查找,我已经尝试过使用 Arrayformula,但它不起作用,因为过滤公式只会过滤第一个条件的数据。

你们有任何解决方案或替代方案,我真的很感激!

这里是我的电子表格的 link:LINK

我认为根本不需要使用 FILTER。

查看我新添加的sheet(“Erik Help”)和这个公式:

=ArrayFormula({"Shifting Date & Time"; IF(A2:A="",, IF(REGEXMATCH(A2:A,"Auto"), IFERROR(VLOOKUP(B2:B&C2:C&D2:D, SORT({G2:G&J2:J, J2:J}), 2, TRUE), VLOOKUP(B2:B&C2:C, {G2:G&H2:H, K2:K}, 2, TRUE)), VLOOKUP(B2:B&C2:C&D2:D, SORT({G2:G&J2:J, J2:J}), 2, TRUE)))})

这是基于您尝试使用但未成功的公式。我只是组合了搜索元素并在 VLOOKUP 子句中使用了最终参数 TRUE,对 right-side 图表中的 SORTed 数据进行操作。

ADDENDUM(进一步 OP 评论后):

=ArrayFormula({"Shifting Date & Time"; IF(A2:A="",, IF(VLOOKUP(B2:B&TEXT(C2:C+D2:D, "mm/dd/yyyy hh:mm"), SORT({G2:G&TEXT(J2:J, "mm/dd/yyyy hh:mm"), G2:G}), 2, TRUE)<>B2:B, "SHIFT ERROR", IF(REGEXMATCH(A2:A, "Auto"), IFERROR( VLOOKUP(B2:B&TEXT(C2:C+D2:D, "mm/dd/yyyy hh:mm"), SORT({G2:G&TEXT(J2:J, "mm/dd/yyyy hh:mm"), J2:J}), 2, TRUE), VLOOKUP(B2:B&C2:C, {G2:G&H2:H, K2:K}, 2, TRUE)), VLOOKUP(B2:B&TEXT(C2:C+D2:D, "mm/dd/yyyy hh:mm"), SORT({G2:G&TEXT(J2:J, "mm/dd/yyyy hh:mm"), J2:J}), 2, TRUE))))})

此公式较长,主要是因为它现在包含错误处理,以防在 right-hand 列表中存在的任何班次之前输入 name-date-time。

我还使用 TEXT 以不同的方式设置日期和时间的格式,以便它们现在 SORT 能够以正确的顺序排列所有内容。