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)))))
我希望有人能帮助我。
我有 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)))))