Zellen vergleichen & andere Zeilen ausblenden
Hier ist eine Funktion für Google Tabellen Script die Euch ermöglicht in Zelle "D1" ein Suchwort einzutragen und nach aufrufen der Funktion "zeilenAusblenden" werden sämtliche andere Zeilen ausgeblendet in denen in Spalte A das Suchwort nicht vorkommt. Somit könnt Ihr überflüssige Zeilen kurzfristig ausblenden und Euch dann voll auf die eine Zeile mit dem Suchwort konzentrieren.
Kurze Infos zum Script
Einige Änderungen könnt Ihr natürlich auch direkt im Script schon vornehmen. Wenn Ihr oben z.B. mehrere Zeilen für die Überschrift und sonstige Einträge benötigt könnt Ihr die Variable "startzeile" anpassen. Hier steht momentan der Wert 5 und dadurch fängt die Suche erst ab Zeile 5 an. Die "endzeile" könnt Ihr ebenfalls anpassen oder das über "getLastRow" automatisch machen lassen. "getLastRow" geht automatisch bis zur letzten Zeile wo ein Eintrag vorhanden ist. Die Spalte wo das Suchwort gefunden werden soll wird hier über die 1 festgelegt und durchsucht hier in diesem Beispiel die Spalte A. Wollt Ihr aber z.B. in Spalte B das Wort suchen müsst Ihr die 1 durch eine 2 ersetzen.
Für Spalte A:
var daten = sheet.getRange(startzeile, 1,endzeile, 1).getValues();
Für Spalte B:
var daten = sheet.getRange(startzeile, 2,endzeile, 2).getValues();
Button erstellen
Einen Button für die Funktion könnt Ihr ganz einfach erstellen indem Ihr auf Einfügen – > Zeichnung eine einfache Zeichnung erstellt und nach dem Speichern auf das kleine schwarze Dreieck klickt was in der Zeichnung zu sehen ist. Hier könnt Ihr dem Bild ein Script zuweisen und das muss den gleichen Namen haben wie die Funktion also "zeilenAusblenden". Wer das nicht so hin bekommt sollte sich Video-Tutorials von mir anschauen, denn dort zeige ich wie man solch einen Button für so eine Scriptzuweisung erstellt.
Zum Beispiel hier: Daten mit Script an den Listenanfang verschieben (Google Tabellen Script)
Hier das Script zum Kopieren
function zeilenAusblenden(){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tabellenblatt1"); var startzeile=5; // Ab welcher Zeile gesucht werden soll var endzeile=100; // Letzte Zeile wo gesucht werden soll. Wenn bis zur letzten Zeile gesucht werden soll dann nehmt: sheet.getLastRow(); var daten = sheet.getRange(startzeile, 1,endzeile, 1).getValues(); // Daten über ein Array einlesen var aktuelleZeilennummer=startzeile; var bearbeitungsZeile=0; var gefunden=0; sheet.unhideRow(sheet.getRange("A:A")); // Zuerst einmal alle Zeilen wieder einblenden for(i in daten){ var eintrag = daten[i]; if(eintrag==sheet.getRange("D1").getValue()){ // Vergleichen ob der Suchbegriff dem Eintrag der Zelle entspricht bearbeitungsZeile=aktuelleZeilennummer; gefunden=1; } aktuelleZeilennummer++; } if(gefunden==1){ sheet.hideRows(startzeile, (bearbeitungsZeile-startzeile)); // Alle Zellen vor dem gefundenen Suchbegriff ausblenden sheet.hideRows(bearbeitungsZeile+1, (endzeile-1-startzeile)); // Alle Zellen nach dem gefunden Suchbegriff ausblenden } }
Wie immer geschieht die Benutzung von meinen Scripten auf eigene Gefahr 😉
Euch gefällt die Datei und Ihr wollt Euch unbedingt bedanken?
Hier ist meine AMAZON – Wunschliste [HIER KLICKEN] 😉
7 Comments
Hallo Chris, dieses Script ist Super, so wie Deine ganze Arbeit einfach große Klasse ist.
Ich habe dazu noch Fragen und würde mich auf Deine Antwort sehr freuden.
1. Kann auch für einen bestimmten Bereich, z. B . B2:B31 eine Ausblendung erzeugt werden, wenn in B1 ein Wert angegeben wird?
2. Können auch mehrere Bereiche, z. B. B2:B31, D2:D31 usw. ausgeblendet werden wenn jeweils in B1, D1 usw. ein Wert angegeben ist?
Schöne Feiertage.
Mit lieben Grüßen aus Soest
Harald
Hallo Harald,erstmal vielen Dank für das große Lob 😉
Was Deine Frage angeht sieht es folgendermaßen aus. Mir selbst ist keine Funktion bekannt wo man Spalten oder auch Zeilenbereiche ausblenden kann. Du gibst ja direkt in Deiner Frage einen Spaltenbereich an (z.B. B2:B31).
Eine ganze Zeile (wie in diesem Beispielscript oben) oder eine ganze Spalte auszublenden wäre nicht das Problem. Die einzige Lösung die mir da nur einfallen würde wäre die Spaltenbereiche nicht auszublenden (was meines Wissens nicht geht) sondern die Textfarbe in diesen Bereichen auf die Hintergrundfarbe zu setzen. Somit wäre dann z.B. weißer Text auf weißem Hintergrund und für den Nutzer nicht sichtbar.
Ich habe mal schnell zwei Seiten erstellt wo ich zeige wie Du die Textfarbe im Script ändern kannst.
https://toptorials.com/textfarbe-aendern-google-tabellen-script-snippet/
https://toptorials.com/textfarbe-zuruecksetzen-standardfarbe-google-tabellen-script-snippet/
Viele Grüße
Chris
Hallo Chris
Danke für dein Tutorial. Ich bin ein Greenhorn, deshalb meine Frage: Ich habe in der obersten Zeile ein Datum, damit jede Spalte mit einem Datum versehen ist (für eine Anwesenheitsliste). Ist es möglich, ganze Spalten ausblenden zu lassen, welche nicht dem aktuellen Datum minus 7 Tage entsprechen?
Du kannst so etwas natürlich programmieren.
Eine andere Möglichkeit wäre eventuell die Daten in einem anderen Tabellenblatt (oder auch im gleichen) gefiltert auszugeben. Dann hast Du einmal die Tabelle für die Bearbeitung und die andere Tabelle wäre dann rein für die Ansicht so wie Du das haben willst.
Möglich wäre das mit der QUERY Funktion oder der FILTER Funktion.
QUERY:
Importrange QUERY mit Datum
FILTER:
Daten filtern mit der Funktion FILTER (Google Tabellen)
Wenn Du das allerdings doch programmieren möchtest sind vielleicht diese Tutorials hilfreich:
Zellen vergleichen & andere Zeilen ausblenden (Google Tabellen / Spreadsheets) Script
oder:
Zeilen ausblenden / Spalten ausblenden / einblenden (Google Tabellen Script)
Viele Grüße
Chris
Hmm, habe versucht, dies über eine Query zu erledigen. Das Problem ist aber, dass ich bei dieser Übersicht, wo nur das aktuelle Datum erscheint, ja keine Checkboxen ausfüllen kann, welche dann quasi zurück ins die Mastertabelle fliessen.
Wie komplex ist es, dies über eine Funktion hinzukriegen bzw. den Code oben abzuändern?
Ich habe jetzt leider nicht ganz verstanden was du machen willst. Wenn es um das programmieren geht und Du ein Script suchst mit dem Du eine Auswahlliste programmieren kannst schau Dir mal dieses Tutorial an:
Dropdownliste mit Google Tabellen Script erstellen (Snippet)
oder
Dropdownliste erstellen mit Google Tabellen Script (Snippet)
Hallo Chriss,
ich hoffe du kannst mir helfen.
Obwohl ich ein Motivierter und begeisterter Listenbastler bin, bin ich an einen punkt geraten an dem ich wohl ohne ein Script nicht mehr voran kommen kann.
Und zwar geht es darum, das ich für meine allianz in einem Spiel wo es 3 verschiedene Burgen gibt Burgbaupläne auf 1 tabellen blatt bekommen.
eigentlich einfach … einfach unter einander setzen… dies ist mir aber zu einfach 🙂
Ich hätte es gerne so ( siehe screen: http://prntscr.com/s1zyn6 ) wenn oben steht "Hauptburg" soll der Burgenbauplan von Zeile A5:A67 eingeblendet werden aber nicht der Bauplan von "Außenposten" ( A70:A132) und umgekehrt. Also wenn oben steht "Außenposten" sollen die Zeilen A5:A67 ausgeblendet werden und A70-A132 eingeblendet werden. Hierbei rede ich von der gesamten Zeile 5:67 also A, B, C, D und so weiter. aktuell schaut es so aus http://prntscr.com/s20078 das gefällt mir einfach nicht.
ich hoffe wirklich das du mir helfen kannst.