Ich habe eine Google-Tabelle mit vielen ausgeblendeten Zeilen und möchte sie überspringen, wenn ich eine Liste von Zeilen in der Tabelle durchblättere.
Es ist hauptsächlich ein Effizienzproblem, da es sich um mehr als die Hälfte meiner Zeilen handelt, die versteckt sind und nicht überprüft werden müssen.
Jede Hilfe wäre willkommen.
Es gibt keine direkte Möglichkeit, dies in Apps Script zu tun, aber es gibt eine feature request geöffnet, um eine Möglichkeit zu bieten, den Status einer Zeile anzuzeigen / zu verbergen, wenn Sie sie anzeigen möchten.
Der Issue Tracker hält diese Anforderung seit dem 3. August 2010 bereit eine mittlere Priorität und nur einen "Triaded" Status. Mehr als 3 Jahre und keine Anzeichen einer Lösung vom GAS-Team.
Meine Problemumgehung bestand darin, ein spezielles vorangestelltes Zeichen zu verwenden, das den Sichtbarkeitsstatus der Zeile / Spalte angibt. Es handelt sich um einen führenden Backtick (') in den Zellen der obersten Kopfzeile / Spalte. Falls verbundene Zellen in Spaltenüberschriften verwendet werden, sollte eine leere oberste Zeile nur für diese Funktionalität zugewiesen werden, bis die Google-Ingenieure die API verbessern. Gleiches gilt, wenn Formeln in der 1. Zeile / Spaltenzelle (n) vorhanden sind. Diese dedizierten Zeilen / Spalten selbst können ausgeblendet werden.
Nach der Verwendung dieser Funktionalität sollte jeder Befehl zum Ein- / Ausblenden von Spalten / Zeilen über ein benutzerdefiniertes Menü ausgeführt werden, da sonst beim programmatischen Durchlaufen des Bereichs aufgrund des fehlenden / übermäßigen Rückens Fehler auftreten.
z.B. Um Zeilen ausgewählter Zellen auszublenden, wird die folgende Funktion aufgerufen:
%Vor%und das Menü
%Vor%Sobald Google-Entwickler die Zeit finden, das onChange-Ereignis zu verbessern, ist es möglich, diese Backticks automatisch zu setzen. Derzeit ist der changeType auf EDIT, INSERT_ROW, INSERT_COLUMN, REMOVE_ROW, REMOVE_COLUMN, INSERT_GRID, REMOVE_GRID, OTHER ohne weitere Details beschränkt auf dem Zeile / Spalte eingefügt / entfernt wurde. Sieht so aus, als wäre das Team hinter GAS spärlich. Ich wünschte, sie könnten mehr Programmierer einstellen (khm khm)
Eine Problemumgehung Erstellen Sie 2 Spalten A und B. A muss immer einen Wert haben und B hat eine Menge von Formeln. Diese 2 Spalten sehen so aus:
%Vor% SUBTOTAL
gibt eine Zwischensumme mit einer angegebenen Aggregationsfunktion zurück. Das erste Argument 103 definiert den Typ der für die Aggregation verwendeten Funktion. Das zweite Argument ist der Bereich, auf den die Funktion angewendet werden soll.
COUNTA
und zählt die Anzahl der Werte im Bereich Das Ergebnis von SUBTOTAL
mit einem Bereich von 1 Zelle ist 0, wenn die Zelle ausgeblendet ist, und 1, wenn die Zelle angezeigt wird. NOT
invertiert es.
Nun können Sie die zweite Spalte mit Ihrem Skript lesen, um zu wissen, ob eine Zeile ausgeblendet ist.
Hier ist die umgesetzte Frage und Antwort: Ссылка
Zur Problemumgehung ist es möglich, mithilfe der Funktion SUBTOTAL
eine Zwischensumme für eine Vertikale zurückzugeben Zellbereich.
Syntax ist:
%Vor%wobei versteckte Werte für jeden dieser Codes übersprungen werden können, indem 10 (für die einstelligen Codes) vorangestellt wird.
Zum Beispiel 102 für COUNT
beim Überspringen ausgeblendeter Zellen und 110
für VAR
dabei.
Related: Google Spreadsheets summieren nur angezeigte Zeilen auf der Webapps SE
Tags und Links google-spreadsheet google-apps-script google-apps