【问题标题】:Alternative to FILTER with REGEXMATCH to get a working arrayformula使用 REGEXMATCH 替代 FILTER 以获得有效的数组公式
【发布时间】:2016-03-28 19:39:28
【问题描述】:

有没有办法在 Google Sheets 中将以下内容作为数组公式工作?它在每一行中都可以正常使用,但是对于 1k+ 行数据,工作表会变得非常慢。

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

根据我目前了解到的情况,过滤器通常不适用于数组,因此欢迎使用任何其他替代方案。到目前为止,我无法使用 regexmatch 函数制作任何解决方案。这是EXAMPLE SHEET,您可以查看数据。

【问题讨论】:

    标签: arrays google-sheets array-formulas


    【解决方案1】:

    由于您需要返回数字,因此 sumifs 可以使用单个公式完成:

    =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


    我不确定它是否会加快您的计算速度。但是这个公式比较好用(不用往下拖)。您也可以使用脚本计算公式,然后将公式结果复制为值。

    【讨论】:

    • 谢谢,麦克斯!为我工作。
    • 我想粘贴公式,然后仅使用脚本复制和粘贴值。您的意思是它可以在脚本中计算公式,然后将结果复制到工作表中吗?你能告诉我在哪里可以学习吗?
    • 我用里面的脚本制作了short demo。你可以让它工作。但更好的方法是发布另一个问题以从脚本专家那里获得更多答案。
    猜你喜欢
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多