Xtract: Beim Import einer gefilterten Excel-Tabelle in Power Query werden stets alle, also auch die ausgeblendeten Zeilen eingelesen. Über einen kleinen Umweg im WorkSheet ist es jedoch möglich, die Abfrage automatisch zu filtern.
Wissensstand: Level 2 ⇒ Solides Basiswissen in Excel, etwas Erfahrung in PQ
Nur sichtbare Zeilen einer Excel-Tabelle in Power Query importieren
Es gibt Situationen, wo nur jene Daten in Power Query importiert werden sollen, die in der Excel-Tabelle sichtbar, also nicht versteckt oder ausgeblendet sind. Das „wieso„und das „warum” möchte ich hier nicht diskutieren, ich nehme es einfach als gegeben hin. Der Wunsch wurde so an mich herangetragen. Damit Sie sich vielleicht ein besseres Bild machen können und wir auch über die gleiche Sache sprechen, laden Sie doch einfach einmal diese etwas ältere Datei mit den Mitgliedern des 18. Deutschen Bundestages, Stand Sommer 2015 herunter. Um politisch in jedem Fall korrekt zu bleiben hier meine Empfehlung: Filtern Sie die Tabelle derart, dass alle Vornamen, welche mit einem „I” beginnen, angezeigt werden. Im Filtrat werden dann noch 10 Namen angezeigt:
Das Ziel: Diese 10 gefilterten Zeilen sollen in eine Power Query-Abfrage importiert werden. Und das soll natürlich je nach Filterbedingung der Quelldaten dynamisch geschehen. Sie kennen das Procedere für den Import: Eine Zelle in den Daten markieren, Daten | Aus Tabelle/Bereich und die Daten werden in den Power Query-Editor geladen. Ja, aber nicht nur die. PQ interessiert sich nicht für einen in Excel gesetzten Filter. Es wird immer die komplette Tabelle geladen.
Es bleibt der Wunsch, dass nur das Filtrat in die Abfrage übernommen wird, damit in PQ nicht noch (von Hand) gefiltert werden muss. Und gleich an dieser Stelle der Hinweis: Power Query kann das nicht, es wird immer die komplette Tabelle importiert. Aber ich würde diesen Beitrag nicht schreiben, wenn es nicht doch einen Ausweg gäbe. 😎
Beenden Sie erst einmal wieder die Abfrage per Schließen & laden oder Schließen & laden in… um die Abfrage entweder als Nur Verbindung zu sichern oder an definierter Position in die Arbeitsmappe zu schreiben. Sie befinden sich und bleiben erst einmal auch in Plain Excel. Und das Wichtigste: Jetzt können Sie hier auch an den Quelldaten erforderliche Änderungen vornehmen. Dazu entfernen Sie zu Beginn den Filter, damit wieder alle Vornamen und damit alle Datensätze sichtbar sind.
Gehen Sie über Tabellentools | Entwurf in die Gruppe Eigenschaften und über das Symbol Tabellengröße ändern verbreitern Sie den Bereich auf =$A$1:$D$643
, also 1 Spalte mehr. Schreiben Sie in die Zelle D2 nun diese Formel: =AGGREGAT(3; 5; A2)
und Sie werden erkennen, dass in jeder Zeile dieser Spalte der Wert 1 steht. Das können Sie ganz leicht kontrollieren, indem Sie die Überschrift erweitern. – Aber ich bin Ihnen noch eine kleine Erklärung zu der AGGREGAT-Funktion schuldig:
- Das erste Argument mit der Beschreibung des Arguments (Funktion) ist 3, was für die Funktion ANZAHL2() steht. Es wird also ein beliebiger Wert in der Zelle gewertet.
- Mit dem zweiten Argument sollen die ausgeblendeten Zeilen ignoriert werden, also muss dort der Wert 5 eingegeben werden.
- Als letztes Argument wird ein Array verlangt; hier trage ich einfach die Adresse der Zelle A2 von Hand ein. Für mich ist das transparenter als ein Klick auf A2, wo dann der Bezug auf die Intelligente Tabelle eingetragen worden wäre: Tabelle1[@Name].
Und jetzt filtern Sie wieder die Tabelle, gerne wie gehabt nach dem ersten Zeichen des Vornamens, sodass nur die entsprechenden Vornamen, mit einem „I” beginnend, angezeigt werden. Öffnen Sie die Abfrage und auf den ersten Blick fällt auf, dass die Query eine Spalte mehr hat. Sollte das nicht der Fall sein, Klicken Sie auf Aktualisieren. Und auf den zweiten Blick werden Sie erkennen, dass zwar wieder alle 642 Zeilen geladen wurden, aber in der neuen Spalte die Werte 0 und 1 vertreten sind. Filtern Sie nun in Power Query diese Spalte1 nach dem Wert 1 und sofort erkennen Sie, dass ausschließlich die gleichen Daten auf dem Schirm sichtbar (und auch vorhanden sind) wie in dem Excel Arbeitsblatt.
So weit ist ja nun wirklich kein herausragender Vorteil zu sehen; außer der Tatsache, dass diese Tabelle nach dem laden in Excel ausschließlich diese Zeilen enthält und nicht durch Rückgängigmachen der Filterung wieder alle Daten sichtbar sind. Aber das wäre auch mit einem Kopieren des Filtrats und einfügen in ein neues Blatt machbar gewesen, wenn diese neue, nur in Excel erstellte Tabelle als Datenquelle genutzt worden wäre. Aber sehen Sie selbst…
Löschen Sie nun einfach in der PQ-Abfrage die letzte Spalte. Schließen Sie die Query und ändern Sie in der Excel-Tabelle den Filter. Wählen Sie beispielsweise den Anfangsbuchstaben „A” für den Vornamen. Und bei der Gelegenheit können Sie auch gleich die Spalte D verstecken, damit die Hilfsspalte unsichtbar ist. Wechseln Sie wieder in die Power Query-Abfrage und da typischerweise beim Öffnen keine automatische Aktualisierung stattfindet, stehen auch noch die bisherigen Werte dort. Ein Klick auf Aktualisieren und jetzt sind in der Abfrage auch nur jene Werte enthalten, die im WorkSheet sichtbar sind. Das Ziel ist damit erreicht. 💡
Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?
Dann würde ich mich über einen Beitrag Ihrerseits z.B. 2,00 € freuen …