PQ: Filtern nach etwas was NICHT da ist, bei anderen aber schon

Im Her­ber-Forum wurde die Frage ‑wie im Titel beschrieben- gestellt. Zum derzeit­i­gen Stand gibt es auch eine Antwort, die (erst) ab der Excel-Ver­sion 365 bzw. 2021 ein­set­zbar ist.

Eine Pow­er Query – Lösung ist (bed­ingt) ab Excel 20102013 ein­set­zbar, ab 2016 ohne Vorbe­din­gun­gen. Den hierunter aufge­führten M-Code habe ich mit weni­gen Mausklicks und (natür­lich) den gesucht­en Tex­ten erstellt, welche ich haupt­säch­lich auch aus den vorhan­de­nen Dat­en kopiert habe. Hier kön­nen Sie im Blog nach­le­sen, wie Sie gegebe­nen M-Code in Ihr Pro­jekt ein­fü­gen kön­nen. – Hier der entsprechende, zur im Forum geposteten Muster-xlsx passende Code:

let
    // Abfragename: RawData
    Quelle = Excel.CurrentWorkbook(){[Name="Table5"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Marken  Name", type text}, {"Anderes", type text}, 
       {"Channel_(new)", type text}, {"Resultat", type text}}),
    #"Entfernte leere Zeilen" = Table.SelectRows(#"Geänderter Typ", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), 
      {"", null}))),
    // Hilfsspalte, um die Werte filtern zu können
    #"Zusammengeführte Abfragen" = Table.NestedJoin(#"Entfernte leere Zeilen", {"Marken  Name"}, #"Marken-filter", 
      {"Marken  Name"}, "Table5 (2)", JoinKind.LeftOuter),
    // Alle Treffer kennzeichnen
    #"Erweiterte Table5 (2)" = Table.ExpandTableColumn(#"Zusammengeführte Abfragen", "Table5 (2)", 
      {"Marken  Name"}, {"Marken  Name.1"}),
    #"Hinzugefügte bedingte Spalte" = Table.AddColumn(#"Erweiterte Table5 (2)", "Benutzerdefiniert", 
      each if [Marken  Name.1] = null then "nein, kein Brick & Mortar Shop" else "ja, Brick & Mortar Shop"),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte bedingte Spalte",{"Resultat", "Marken  Name.1"})
in
    #"Entfernte Spalten"
//Abfrage-Name: Marken-Filter
let
    Quelle = Excel.CurrentWorkbook(){[Name="Table5"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Marken  Name", 
      type text}, {"Anderes", type text}, {"Channel_(new)", type text}, 
      {"Resultat", type text}}),
    #"Andere entfernte Spalten" = Table.SelectColumns(#"Geänderter Typ", 
      {"Marken  Name", "Channel_(new)"}),
    // Den Suchbegriff 'Brick & Mortar Shop' habe ich aus dem unteren 
       Fenster-Bereich des Editors kopiert…
    #"Gefilterte Zeilen" = Table.SelectRows(#"Andere entfernte Spalten", each
      ([#"Channel_(new)"] = "Brick & Mortar Shop"))
in
    #"Gefilterte Zeilen"

Mir ist bewusst, dass es auch andere, „kom­plexere“ Wege zum Ziel gibt. Ein Beispiel gibt es auch hier im Blog. Aber wenn ich schon den Formel-Vorschlag von MCO (Stand: 04.04.2025 08:37:53) als zu anspruchsvoll für Nor­mal-User anse­he, dann gilt das erst recht bei der dort vorgestell­ten Funk­tion. Auch wenn diese flex­i­bler ein­set­zbar ist.

… Und noch eine Anmerkung: Es sind nur noch wenige Tage bis Ostern und noch weniger bis zu (m)einem „run­den“ Geburt­stag. Der Oster-Beitrag ist schon vor­bere­it­et. Und der zeich­net sich dadurch aus, dass es aller Voraus­sicht nach mein let­zter Blog – Beitrag sein wird. Gründe dafür werde ich auss­chließlich (aber auch ehrlich) beant­worten, wenn Sie mir eine entsprechende PM (E‑Mail) zukom­men lassen und ich Ihnen auch auf gle­ichem Wege mein State­ment anbi­eten kann.

Gün­ther Mumme

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.