使用REGEXMATCH替代FILTER以获得有效的arrayformula

时间:2016-03-27 21:55:24

标签: arrays google-sheets array-formulas

有没有办法在Google表格中将下面的工作作为数组公式?它在每一行中都可以正常使用,但是如果有1k +行的数据,则表格变得很慢。

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

从目前为止我所学到的过滤器通常不适用于阵列,因此欢迎任何其他替代方案。我无法使用迄今为止我发现的任何解决方案与regexmatch功能一起工作。在这里EXAMPLE SHEET,您可以看到数据。

1 个答案:

答案 0 :(得分:1)

当您需要返回数字时,可以使用单个公式完成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))

Example file

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