Google Sheets Array 公式在多个条件下匹配,1 是小于或等于的日期

Google Sheets Array Formula Match on Multiple Conditions, 1 being date that is less than or equal to

我希望有人能帮助我。

我有 2 个不同的数据集,我希望使用 arrayformula 复制类似 maxifs 函数的东西,这样我只需要 1 个公式而不需要将它拖下来。

我想要做的是return一个与名称匹配的值,并且日期小于或等于列中的日期。基本上是符合这些条件的最新值。

我在下面添加了一张图片

DEMO FIXED

我在这种情况下尝试复制的 maxifs 公式是:=maxifs(I:I, A:A, G:G, H:H, "<=" & B:B)

示例 Sheet:https://docs.google.com/spreadsheets/d/1mMMT1JbBMTAM0togUFQtctpY5FKzgVaP2_YKnALoHAE/edit?usp=sharing

提前致谢。

更新: 我有这个公式

=arrayformula(if(len(A2:A), vlookup(A2:A&B2:B, {H2:H&I2:I, J2:J}, 2, false),))

这几乎是我想要的,但是如果没有匹配的日期,我需要下一个最近日期的值。相反,这 return 是一个错误。

您的新目标与您的 post 无关。您的图像值与您的 sheet 不匹配,并且您现在根本不需要 max 或等效于 MAXIFS。所以整个 post 会让其他贡献者和未来的站点访问者感到困惑。考虑花足够的时间修改您的 post 问题、图片和传播sheet,以统一的方式准确反映您的新目标。

也就是说,我添加了一个新的 sheet(“Erik 帮助”),其中一个公式以绿色突出显示,据我所知,它实现了您的新目标:

=ArrayFormula(IF(A2:A="",,VLOOKUP(A2:A&"~"&B2:B,SORT({G2:G&"~"&H2:H,I2:I},1,1),2,TRUE)))

ADDENDUM(基于 OP 的附加评论):

我修改了公式如下:

=ArrayFormula(IF(A2:A="",,IFERROR(IF(REGEXEXTRACT(VLOOKUP(A2:A&"~"&B2:B,SORT(G2:G&"~"&H2:H),1,TRUE),"(.+)~")<>A2:A,"no match",VLOOKUP(A2:A&"~"&B2:B,SORT({G2:G&"~"&H2:H,I2:I},1,1),2,TRUE)))))