使用REGEXMATCH替代FILTER以获得工作阵列



有没有办法将下面的内容作为数组形式在Google Sheets中使用?它在每行中使用都很好,但对于1k行以上的数据,工作表会变得非常慢。

=FILTER( L:L, J:J=A2, REGEXMATCH(K:K, B2))

据我所知,Filter通常不适用于Arrays,因此欢迎使用任何其他替代方案。到目前为止,我找不到任何可以使用regexmatch函数的解决方案。这是示例表,您可以查看数据。

由于需要返回数字,sumif可以用一个公式来完成:

=MMULT(ArrayFormula(--(A2:A13=TRANSPOSE(K1:K7))*
--(REGEXMATCH(TRANSPOSE(L1:L7),B2:B13))),M1:M7)

要使这个公式适用于不同的数组,请使用以下结构:

  • A2:A13offset(A2,,,counta(A2:A))
  • B2:B13offset(B2,,,counta(A2:A))
  • K1:K7offset(K1,,,counta(K1:K))
  • L1:L7offset(L1,,,counta(K1:K))
  • M1:M7offset(M1,,,counta(K1:K))

示例文件


我不确定它是否会加快你的计算速度。但这个公式更容易使用(无需拖动)。还可以使用脚本计算公式,然后将公式结果复制为值。

最新更新