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.