Prüfen, ob ein Text einen bestimmten Wert enthält in DAX
This post is also available in: Englisch
Mussten Sie schon einmal prüfen, ob ein Text einen bestimmten Wert enthält? Dieses Thema mag zwar recht banal erscheinen, aber es ist eines, das mir bei meiner eigenen Arbeit immer wieder begegnet ist. Und ich bin sicher, dass es vielen anderen auch so geht.
In diesem kurzen Artikel werden wir untersuchen, wie man diese Situation mit Hilfe von DAX lösen kann. Mit nur ein paar Zeilen Code können Sie leicht feststellen, ob Ihr Text den gewünschten Wert enthält oder nicht.
Beispiel für unseren Artikel
Vielleicht habe ich in der Vergangenheit zu viel mit AdventureWorks gearbeitet, aber nehmen wir einmal an, wir verkaufen Fahrräder und haben eine Produkttabelle. Unser kleines Beispiel sieht wie folgt aus:
Für diese Spalte wollen wir nun prüfen, ob sie den Text “bike” enthält oder nicht.
Die einzige Funktion, die Sie benötigen, ist CONTAINSSTRING
In diesem Fall könnten wir einen einfachen Ansatz wählen und eine berechnete Spalte hinzufügen, um in “Bikes” und ” Accessory” zu kategorisieren. Dazu wollen wir nur prüfen, ob der Wert das Wort “bike” enthält.
Die Lösung ist recht einfach, da die Funktion CONTAINSSTRING prüft, ob ein bestimmter Text eine bestimmte Zeichenfolge enthält. In unserem Fall wird die folgende berechnete Spalte TRUE zurückgeben, wenn der Text “bike” gefunden wird, und FALSE, wenn er nicht gefunden wird:
Contains Bike = CONTAINSSTRING( Products[Productname], "bike" )
Und das Ergebnis zeigt nun, welches Element das Wort “Bike” enthält und welches nicht:
Die Kombination mit einer IF-Anweisung liefert das gewünschte Ergebnis
Wenn Sie dies nun mit einer IF- oder SWITCH-Anweisung kombinieren, erhalten Sie die von uns gewünschte Kategorisierung als berechnete Spalte.
Category =
IF(
CONTAINSSTRING( Products[Productname], "bike" ),
"Bike",
"Accessory"
)
Die neue Spalte enthält nun unsere Kategorisierung:
Groß- und Kleinschreibung mit CONTAINSROW
Jetzt bleibt nur noch die Frage, ob die Funktion CONTAINSROW Groß- und Kleinschreibung berücksichtigt oder nicht. Die Antwort ist ganz einfach: nein, es unterstützt keine case-sensitiven Werte. Es spielt also keine Rolle, ob man “bike” oder “Bike” oder “bIkE” in die Funktion schreibt, sie wird denselben Wert zurückgeben.
Natürlich kann dieser Ansatz auch innerhalb eines DAX-Measures verwendet werden, aber ich hatte das Gefühl, dass es einfacher ist, dies anhand einer berechneten Spalte zu erklären.
Demo-Datei herunterladen
Die Demo-Datei kann hier heruntergeladen werden: