Wer in Power Query Daten nach Kostenstellen, Artikel-, Kunden- oder Lieferantennummern filtert, kann das mühelos erledigen. Um beispielsweise die Daten in der unten gezeigten grauen Tabelle nach Kostenstellen zu filtern, die mit “A“ oder “B“ beginnen, formuliere ich zwei einzelne Filterkriterien.

Wie lassen sich die Daten links nach Kostenstellen mit Buchstaben oder mit Zahlen am Anfang filtern?
Problematisch wird es jedoch, wenn es um deutlich mehr Filterkriterien geht: beispielsweise, wenn nach beliebigen Buchstaben oder Ziffern am Anfang gefiltert werden soll. Ich zeige, wie ich den Aufwand bei gleichartigen Mehrfachfiltern mit List.Contains vereinfache und minimiere.
Die folgende Abbildung zeigt, dass es bei einer Vielzahl von Filterkriterien schnell unübersichtlich und aufwändig werden kann. Es funktioniert zwar, hat aber einige Nachteile:

Über den Spaltenkopf ließen sich mit Hilfe vieler Oder-Bedingungen die Kostenstellen herausfiltern, die mit einem Buchstaben beginnen, doch der Aufwand wäre hoch
Die folgende Abbildung zeigt, dass bei diesem Standard-Vorgehen der M-Code unnötig lang und unübersichtlich wird.

Viele Oder-Bedingung beim Filtern erzeugen einen langen, unübersichtlichen M-Code
Um alle Kostenstellen nach einem beliebigen Anfangsbuchstaben mit einer einzigen Listenabfrage zu filtern, gehe ich wie folgt vor:

Der Trick: Die Filteranweisung nach einer bestimmten Kostenstelle durch die List.Contains-Anweisung austauschen
Zur Erläuterung:

Die Funktion List.Contains prüft, ob der angegebene Wert in einer Liste von Werten vorliegt
Problematisch wird es, wenn eine Kostenstelle mit klein geschriebenem Anfangsbuchstaben vorliegt. Hier beispielsweise die Kostenstelle x9999. Sie wird bei der obigen Filterung nicht berücksichtigt.
Um nun nicht eine weitere Liste für “a“..“z“ angeben zu müssen, umgehe ich das Problem mit Hilfe eines dritten, optionalen Parameters in der Funktion List.Contains.
So geht’s:
Ich erweitere die List.Contains-Anweisung durch Eingabe eines Kommas und anschließender Auswahl des Vergleichswertes Comparer.OrdinalIgnoreCase als drittes Argument.

Durch Angabe des dritten Arguments als Comparer.OrdinalIgnoreCase wird die Groß-/Kleinschreibung ignoriert
Um alle Kostenstellen beginnend mit einer Ziffer zu filtern, gehe ich wie oben beschrieben vor. Allerdings ersetze ich die im ersten Argument angegebene Liste {“A“..“Z“} durch {“0“..“9“}.
Statt einer Liste von Großbuchstaben eine Liste von Ziffern vorgeben

- Dipl.-Informatikerin
- Trainerin für Excel und Power BI
- Als erfahrene Datenanalystin Coach für BI-Projekte
- Anwendungsentwicklerin für BI-Tools
- Fachbuchautorin und Bloggerin zu Excel und Power BI
- Video-Trainerin zu Power BI für LinkedIn Learning
- Microsoft Certified Excel Expert
- Microsoft Certified Power BI Data Analyst Associate
Über den Autor