2016-03-27 15 views
0

Gibt es eine Möglichkeit, unten als Arraymethode in Google Tabellen zu arbeiten? Es funktioniert gut in jeder Zeile, aber mit 1k + Zeilen von Daten wird das Blatt sehr langsam.Alternative zu FILTER mit REGEXMATCH, um eine funktionierende arrayformula zu erhalten

Von dem, was ich bisher gelernt habe Filter funktioniert normalerweise nicht mit Arrays, so dass andere Alternativen willkommen sind. Ich konnte keine Lösung, die ich bisher gefunden habe, mit der Regexmatch-Funktion arbeiten lassen. Hier ist EXAMPLE SHEET, damit Sie die Daten sehen können.

Antwort

1

Wie Sie brauchen Zahlen zurückkehren, SUMIFS mit Einzel Formel getan werden könnte:

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

Um diese Formel Arbeit für verschiedene Arrays zu machen, benutzen Sie diese Konstruktion:

  • 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


bin ich nicht sicher, dass es Ihre Berechnungen beschleunigen werde. Aber diese Formel ist einfacher zu benutzen (keine Notwendigkeit, nach unten zu ziehen). Sie können auch ein Skript zum Berechnen der Formel verwenden und anschließend Formelergebnisse als Werte kopieren.

+0

Danke, Max! Funktioniert bei mir. –

+0

Ich dachte, Formel einzufügen und dann Werte kopieren und einfügen nur mit einem Skript. Meinst du es kann Formel in einem Skript berechnen und dann Ergebnisse in ein Blatt kopieren? Kannst du mir einen Hinweis geben, wo ich das lernen kann? –

+0

ich gemacht habe [kurze Demo] (https://docs.google.com/spreadsheets/d/1g_Lg1SQK0aNSCk1C3x7TPQ6WuHzwB8ZRjlNSs4Twj1s/edit?usp=sharing) mit dem Skript nach innen. Du könntest es vielleicht zum Laufen bringen. Ein besserer Ansatz besteht darin, eine weitere Frage zu stellen, um mehr Antworten von Skript-Experten zu erhalten. –