Filter und Importrange kombiniert (Google Tabellen / Spreadsheets)
In diesem Tutorial zeige ich Euch wie Ihr bei den GOOGLE TABELLEN die Funktion FILTER und IMPORTRANGE kombinieren könnt. Für FILTER habe ich bereits ein eigenes Tutorial erstellt, genauso für die Funktion IMPORTRANGE.
Wer das erste mal mit Google Tabellen oder überhaupt mit einem Tabellenkalkulationsprogramm arbeitet sollte sich vielleicht auch erst einmal dieses Tutorial anschauen:
Einfache Berechnungen für Anfänger (Google Tabellen)
Das Tutorial zeigt ganz einfache Berechnungen und sollte den Einstieg wesentlich leichter machen.
Dieses Tutorial ist extra für Anfänger die sich mit dem Tabellenkalkulationsprogramm GOOGLE TABELLEN / SPREADSHEETS noch nicht so viel beschäftigt haben und zeigt die Funktionen und Möglichkeiten Schritt für Schritt.
Das Video-Tutorial "Filter und Importrange kombiniert (Google Tabellen / Spreadsheets)"
17 Comments
Hallo Chris, ich mal wieder,
Ich habe deine mehrfach Filter Auswahl benutzt, um in drei spalten M, N, O nach den Buchstaben TZ zu suchen. Folgende Formel habe ich benutzt. Die stimmt genau mit der von Dir oben aufgeführten überein.
=filter(importrange("Tabellenname";"KW 42!a1:T300");
importrange("Tabellenname";"KW 42!n1:n300")="tz";
importrange("Tabellenname";"KW 42!m1:m300")="tz";
importrange("Tabellenname";"KW 42!o1:o300")="tz")
Sobald ich Enter drücke, sagt er mir, Fehler, Bei der Auswertung von "FILTER" wurden keine Treffer gefunden. Reduziere ich die Formel nur auf Spalte o, findet er TZ und zeigt mir die Zeile an. Es ist doch egal ob ich, wie Du Fernseher, Kameras oder wie ich, TZ in jeder Spalte verwende. Es werden ja die Spalten, die in der Formel stehen durchsucht und die Zeilen angezeigt, bei den TZ in eine der Spalten M,N,O steht. Was in meinem Fall TZ wäre.
Hoffe, es einigermaßen verständlich erklärt zu haben.
Hi Jochen, ich vermute dass Du nur in Spalte "O" dieses "tz" zu stehen hast, deshalb funktioniert Dein Filter auch nur wenn Du das ausschließlich auf diese Spalte anwendest. Du bekommst keinen Treffer weil alle angegebenen importrange Spalten in der gleichen Zeile jetzt ein "tz" haben müssten.
Wenn Du Dir meinen Aufbau anschaust, siehst Du ja was als Ergebnis raus kommt. Der Name muss passen, die Produktgruppe und Zahlen größer 0. Deshalb kommt es auch zu diesem Ergebnis weil alle Bedingungen erfüllt wurden.
Hallo Chris, wieder mal vielen Dank für Deine Antwort. Schade, da kann ich das nicht anwenden, da dieses tz in allen drei Spalten sein kann, ich aber nie weiss, wo genau es steht. Ich muss in allen drei Spalten suchen und mir die Zeile anzeigen lassen. Muss ich doch meine array formel wieder anwenden. Oder gibt es eine andere Lösung?
Hi Jochen, schau Dir mal die Funktion query an. Die ist zwar ein bisschen tricky aber die Abfragemöglichkeiten sind top. Das könnte was für Dich sein.
Einmal eine kleine "query" Einführung:
https://toptorials.com/funktion-query-wie-sql-google-tabellen/
Und dann noch importrange mit "query":
https://toptorials.com/importrange-query-kombiniert-google-tabellen/
Hi Jochen, wie hast du das jetzt gelöst? Ich habe das gleiche Problem.
VG
Peter
Moin Chris,
ich habe gleich zwei Fragen (die eher unabhängig voneinander zu betrachten sind!) und hoffe, dass du mir weiterhelfen kannst.
1. Kann ich die Formatierung beim Importrange übernehmen? (z.B. Farben, Schriftgrößen, Text mittig etc.) Wenn ja, wie?
2. In einem anderen Spreadsheet möchte ich ebenfalls Importrange nutzen. Ich importiere dabei Inhalte aus mehreren Zellen (aus der Ursprungs-Tabelle), möchte aber, dass diese Inhalte in der "neuen" Tabelle in nur einer Zelle angezeigt werden. Das habe ich soweit auch mit der Funktion "VERKETTEN" hinbekommen. Nun habe ich aber das Problem, dass die Inhalte direkt hintereinander geschrieben werden. Sie sollen aber mit einem Umbruch getrennt werden. Nur wie? Ich habe mal was von "Zeichen(10)" gelesen, kriege ich es aber nicht hin die Formel zu bauen. Zurzeit sieht meine Formel wie folgt aus:
=VERKETTEN(IMPORTRANGE("Spreadsheet-ID", "Tabellenblatt!D2:D100"))
Der Inhalt in der Zelle ist dementsprechend quasi so: "MüllerSchusterSchmidtKühnBäcker", es soll aber so sein:
Müller
Schuster
Schmidt
etc.
Danke dir!
Hi Maddy,
soweit ich weiß kannst Du mit IMPORTRANGE nur Daten übertragen aber keine Formatierungen. Wenn sich die Daten innerhalb eines Dokuments befinden könntest Du die Daten inklusive der Formatierung mit copyTo (Kopieren) oder moveTo (Verschieben) übertragen.
Diesen Zeilenumbruch kannst Du bei der Script-Programmierung mit "\n" hinzufügen.
In der Tabelle selbst kannst Du das mit Char(10) machen oder Zeichen(10) also warst Du der Lösung schon sehr nahe.
Wenn Du Dir nachfolgende Formel z.B. in Zelle C1 kopierst und in Zelle A1 bis A3 ein paar Einträge hast dann siehst Du das es funktioniert.
=VERKETTEN(A1;ZEICHEN(10);A2;ZEICHEN(10);A3)
Ich bin mir allerdings nicht sicher ob Du das so anwenden kannst, denn es sieht mir bei Deiner Formel so aus als wenn der letzte Parameter alle Daten auf einmal reinholt. Da wirst Du mit der Verketten-Funktion nicht weiter kommen.
Hey Chris,
danke dir! Das mit der Verketten-Funktion funktioniert doch! Hab die Formel gefunden: =TEXTJOIN(ZEICHEN(10),1,IMPORTRANGE(…) Damit kann ich die Inhalte in einer Zelle mit Umbruch darstellen. trotzdem danke für deine Mühe!
Freut mich dass Du die Lösung gefunden hast.
Hi Chris, danke für den Tipp. Die Filterung hat super geklappt.
Ich hab eine Frage – ich hole die Importrange D2:F aus dem Sheet Overview, dann filtere ich nach bestimmten Kriterien im selben Sheet. Ich möchte aber vermeiden, das Rangeende mit einer konkreten Zahl zu definieren bzw. wenn Zeilen hinzugefügt werden, sollte die Formel automatisch die neue Zeile aufgreifen.
Was nicht funktioniert:
=IF(FILTER(IMPORTRANGE(Overview!V22, "TabName!D2:F"), IMPORTRANGE(Overview!V22, "TabName!D2:D") = "KI", ISNUMBER(IMPORTRANGE(Overview!V22, "TabName!F2:F"))) = "KI", "KI", "")
dann bekomme ich diesen Fehler gemeldet:
"FILTER has mismatched range sizes. Expected row count: 162. column count: 1. Actual row count: 1, column count: 1."
Hast du einen Tipp?
Ich habe das Gefühl dass Du mit der Funktion QUERY noch viel mehr Möglichkeiten hast und noch besser filtern kannst.
Schau Dir mal die folgenden Tutorials dazu an. Ich denke wenn Du Dich ein wenig mit SQL auskennst könntest Du begeistert von den Möglichkeiten sein:
Funktion query() ähnliche Abfragen wie bei SQL (Google Tabellen)
importrange und query kombinieren (Google Tabellen)
Lieber Chris,
danke für ein weiteres tolles tutorial, allerdings habe ich ein ungelöstes problem:
Ich will innerhalb des selben Files die Spalte A von WOrksheet X mit der Spalte A von worksheet y synchronisieren. Das Problem ist, dass ich mit direkter Zuweisung von Zelle zu Zelle, sowie "=X!A5", nicht synchron bin sobald in der Quelle (= Worksheet X) eine neue Zeile eingefügt wird. Hättest du da eine Idee?
Lg aus Österreich,
Daniel
Ich bin mir jetzt nicht sicher wie Du das meinst. Soll beim einfügen einer neuen Zeile auch eine neue Zeile im anderen worksheet stattfinden? Dann müsstest Du das programmieren und die Zeilen dann über einen Button einfügen. Also die Zeile auswählen und dann über einen Button das Script aufrufen, die Zeile auslesen und dann in beiden Worksheets eine Zeile einfügen lassen.
Hast Du nur in beiden Worksheets die gleichen Daten aber willst nur weiterhin den Vergleich solltest Du zum Beispiel über SVerweis arbeiten und entsprechenden ID's oder Zeitstempel für jede Zeile. Das wäre jetzt meine Idee dazu. Ich kann mir aber vorstellen dass es vielleicht noch andere Möglichkeiten geben könnte. Ich würde vermutlich auch noch mit einer bedingten Formatierung arbeiten und dann die Daten vergleichen. Kann auch eine ziemlich schmale Spalte sein die dann grün für jeden vorhandenen Eintrag in der anderen Tabelle anzeigt. Dann siehst Du sofort in den Lücken dass etwas nicht stimmt.
Viele Grüße
Chris
Moin Chris,
ich habe eine Frage zu diesem Thema.
Ich möchte gerne mit Importrange und der Filterfunktion die Spalte mit dem aktuellen Monat anzeigen.
D.h. ist habe in Spalte "A:B" den Monat Januar und seine Tage darunter (Spalte A darunter der Wochentag in Textform (Mo) und Spalte B der Wochentag und Monat in Zahlform (01.04.) ), In Spalte "C:D" den Februar, etc..
Nun zu meiner Frage: Ist es möglich, diese Spalten mit dem Filter =Text(MONAT(HEUTE());"MMMM") über Importrange anzeigen zu lassen, sodass lediglich aus dem gesamten Kalender nur diese Spalten, z.B. A:B, für Januar angezeigt werden?
Vielen Dank für deine Bemühungen.
Viele Grüße
Nikolai
Hej Chris,, Ich habe 2 verschiedene Sheets die ich gerne mit einander vergnüpfen möchte. Mein Ziel ist es, auf jeder der Dateien schreiben zu können und dass dadurch das geschriebene, auf der jeweils anderen Datei auch erscheint. Mit importrange geht dies leider nur in die eine richtung. Das heißt, das was ich auf Datei 1 schreibe erscheint auch in Datei 2. Auf Datei 2 kann ich allerdings nichts schreiben ohne dass er mir in beiden Dateien “BEZUG” anzeigt. Kannst du mir helfen?
Hallo Chris,
vielen Dank für deine tollen VIdeos!
An einer Stelle komme ich leider nicht weiter für meinen Anwendungsfall.
Hier ein fiktives Beispiel:
Auf Tabellenblatt 1 habe ich Adressdaten und in einer Spalte sind diese per DropDown kategorisiert in "Autohändler", "Supermärkte" und "Eisdielen".
Ich möchte nun sowohl die Daten für "Supermärkte", als auch die Daten für "Eisdielen" ziehen.
Ich möchte mit der zweiten Bedingung also nicht die Suche weiter eingrenzen, sondern eine weitere Such-Bedingung hinzufügen.
Um bei deinem Video-Tutorial zu bleiben: Ich möchte alle Zeilen für "Kamera" UND "Fernseher" ziehen.
Gibt es hierzu eine Möglichkeit?
Vielen Dank im Voraus für Deine Unterstützung!
Hallo Chris,
zunächst einmal vielen lieben Dank für diesen tollen Artikel. Danach habe ich lange gesucht und die Umsetzung könnte eine große Hilfe für mich sein.
Allerdings möchte ich in meinem Fall z.B.. (angewendet auf Dein Beispiel oben) alle Daten aus der Reihe B filtern, die z.B. Müller UND Schuster enthalten. In meinem Fall sind es nicht Müller und Schuster sondern viele Kontraktnummern die ich herausfiltern möchte.
Hast Du einen Tipp für mich? Vielen Dank im voraus.
Gruß, Philip