MATCH( )-Funktion
Gibt einen logischen Wert zurück, der angibt, ob der angegebene Wert einem der Werte entspricht, mit denen er verglichen wird.
Syntax
MATCH(Vergleichswert; Test <;...n>)
Parameter
Name | Typ | Beschreibung |
---|---|---|
Vergleichswert |
Zeichen numerisch Datumzeit |
Das Feld, der Ausdruck oder der Literalwert, das/der auf Übereinstimmungen zu überprüfen ist. |
Test <;...n> |
Zeichen numerisch Datumzeit |
Felder, Ausdrücke oder Literalwerte, die mit dem Vergleichswert verglichen werden sollen. Sie können so viele Testwerte wie notwendig angeben, alle spezifizierten Werte müssen jedoch denselben Datentyp aufweisen: MATCH(Vergleichswert; `20140930`; `20141030`)
|
Hinweis
Eingaben für die MATCH( )-Funktion können Zeichen-, numerische oder Datumzeit-Daten sein. Datentypen können Sie nicht mischen. Alle Eingaben müssen derselben Datenkategorie angehören.
Ausgabe
Logisch. Gibt T (wahr) zurück, wenn mindestens eine Übereinstimmung gefunden wurde. Andernfalls wird F (falsch) zurückgegeben.
Beispiele
Einfache Beispiele
Hinweis
Rückgabewerte für Zeichenvergleiche gehen davon aus, dass SET EXACT auf OFF eingestellt ist (die Standardeinstellung), soweit keine anderen Angaben gemacht werden.
Literalwerte testen
Gibt „T“ zurück:
MATCH("ABC"; "BCD"; "CDE"; "AB")
Gibt „F“ zurück:
MATCH(98; 99; 100; 101)
Ein Feld testen
Gibt „T“ für alle Datensätze zurück, welche „Phoenix“, „Austin“ oder „Los Angeles“ im Feld Lieferantenstadt enthalten. Gibt ansonsten „F“ zurück:
MATCH(Lieferantenstadt; "Phoenix"; "Austin"; "Los Angeles")
Gibt „T“ für alle Datensätze zurück, welche „Phoenix“, „Austin“ oder „Los Angeles“ nicht im Feld Lieferantenstadt enthalten. Gibt ansonsten „F“ zurück:
NOT MATCH(Lieferantenstadt; "Phoenix"; "Austin"; "Los Angeles")
Gibt „T“ für alle Datensätze zurück, die unabhängig von der Groß- und Kleinschreibung beliebiger Zeichen die Werte „PHOENIX“, „AUSTIN“ oder „LOS ANGELES“ im Feld Lieferantenstadt enthalten. Gibt ansonsten „F“ zurück:
Werte im Feld Lieferantenstadt werden auf Großbuchstaben konvertiert, bevor sie mit den groß geschriebenen Stadtnamen verglichen werden.
MATCH(UPPER(Lieferantenstadt); "PHOENIX"; "AUSTIN"; "LOS ANGELES")
Mehrere Felder testen
Gibt „T“ für alle Datensätze zurück, welche die Zeichenfolge „Phoenix“ in den Feldern Lieferantenstadt, Stadt oder Stadt_2 enthalten. Gibt ansonsten „F“ zurück:
MATCH("Phoenix"; Lieferantenstadt; Stadt; Stadt_2)
Verhalten von SET EXACT
Gibt für alle Datensätze mit Produktcodes „A“, „D“ oder „F“ bzw. Produktcodes, die mit „A“, „D“ oder „F“ im Feld Produktcode beginnen, „T“ zurück. Gibt ansonsten „F“ zurück:
MATCH(Produktcode; "A"; "D"; "F")
Gibt für alle Datensätze „T“ zurück, die im Feld Produktcode ein Zeichen lange Produktcodes „A“, „D“ oder „F“ aufweisen. Gibt „F“ zurück (SET EXACT muss auf ON gesetzt sein):
MATCH(Produktcode; "A"; "D"; "F")
Zwei Felder vergleichen
Gibt für alle Datensätze „T“ zurück, die identische Adressen von Lieferanten und Mitarbeitern aufweisen. Gibt ansonsten „F“ zurück:
Sie müssen unter Umständen zusätzliche Funktionen verwenden, um das Format von Lieferanten- und Mitarbeiteradressen zu vereinheitlichen.
MATCH(Lieferantenadresse; Mitarbeiteradresse)
Datumswerte vergleichen
Gibt für alle Datensätze „T“ zurück, die ein Rechnungsdatum am 30. Sep 2014 oder am 30. Okt 2014 aufweisen. Gibt ansonsten „F“ zurück:
MATCH(Rechnungsdatum; `20140930`; `20141030`)
Weiterführende Beispiele
Ungewöhnliche Vorratsdatensätze extrahieren
Verwenden Sie eine IF-Anweisung und die MATCH( )-Funktion, um alle Datensätze zu extrahieren, deren Feld VorratswertzuAHK einen unterschiedlichen Wert als das Kalkulationsfeld AHK_x_Menge aufweisen.
EXTRACT RECORD IF NOT MATCH(VorratswertzuAHK; AHK_x_Menge) TO "Nicht_übereinstimmende_Beträge"
Extrahieren von Datensätzen für Abteilungen 101, 103 und 107
Verwenden Sie eine IF-Anweisung und die MATCH( )-Funktion, um ausschließlich Datensätze der Abteilungen 101, 103 oder 107 zu extrahieren:
EXTRACT RECORD IF MATCH(Abt; "101"; "103"; "107") TO "Drei_Abteilungen"
Bemerkungen
MATCH( ) statt dem OR-Operator verwenden
Sie können die MATCH( )-Funktion statt Ausdrücken mit dem OR-Operator verwenden.
Beispiel:
MATCH(Stadt; "Phoenix"; "Austin"; "Los Angeles")
entspricht
Stadt="Phoenix" OR Stadt="Austin" OR Stadt="Los Angeles"
Dezimale Genauigkeit numerischer Eingaben
Wenn verglichene numerische Eingaben unterschiedliche Dezimalstellen aufweisen, verwendet der Vergleich die höhere dezimale Genauigkeit.
Gibt „T“ zurück, weil 1,23 dem Wert 1,23 entspricht:
MATCH(1,23; 1,23; 1,25)
Gibt „F“ zurück, weil 1,23 nicht 1,234 entspricht, sobald die dritte Dezimalstelle berücksichtigt wird:
MATCH(1,23; 1,234; 1,25)
Zeichenparameter
Beachtung der Groß- und Kleinschreibung
Die MATCH( )-Funktion unterscheidet zwischen Groß- und Kleinschreibung, wenn sie mit Zeichendaten verwendet wird. Wenn Zeichen verglichen werden, entspricht „a“ nicht „A“.
Gibt „F“ zurück:
MATCH("a";"A";"B";"C")
Wenn Sie mit Daten mit inkonsistenter Groß-/Kleinschreibung arbeiten, können Sie die Funktion UPPER( ) verwenden, um die Werte vor Verwendung der Funktion MATCH( ) in eine konsistente Groß-/Kleinschreibung zu konvertieren.
Gibt „T“ zurück:
MATCH(UPPER("a“); UPPER("A"); UPPER("B"); UPPER("C"))
Teilweise Übereinstimmung
Teilweise Übereinstimmungen werden bei einem Zeichenvergleich unterstützt. Einer der beiden Vergleichswerte kann also in dem anderen Wert enthalten sein und in diesem Fall als Übereinstimmung betrachtet werden.
Beide Beispiele geben „T“ zurück:
MATCH("AB"; "ABC")
MATCH("ABC“; "AB")
Hinweis
Der kürzere Wert muss am Beginn des längeren Werts erscheinen, damit es zu einer Übereinstimmung kommt.
Teilweise Übereinstimmung und SET EXACT
Teilweise Übereinstimmungen sind aktiviert, falls SET EXACT = OFF eingestellt ist. Dies ist die Analytics-Standardeinstellung. Falls SET EXACT = ON eingestellt ist, sind teilweise Übereinstimmungen deaktiviert und die Vergleichswerte müssen genau übereinstimmen, damit eine Übereinstimmung gemeldet wird.
Beide obige Beispiele sind falsch, falls SET EXACT auf ON eingestellt ist.
Weitere Informationen über SET EXACT (die Option Genauer Zeichenvergleich) finden Sie unter SET-Befehl.
SET EXACT an- oder ausschalten
Wenn Sie sicherstellen möchten, dass die Option Genauer Zeichenvergleich für die Funktion MATCH( ) nicht verwendet wird, überprüfen Sie, dass die Option im Dialogfeld Optionen ( ) unter der Registerkarte Tabelle nicht ausgewählt ist.
Wenn Sie ein Skript verwenden, können Sie den Befehl SET EXACT OFF vor der MATCH( )-Funktion hinzufügen. Falls erforderlich, können Sie den vorigen Status mit Hilfe des SET EXACT ON-Befehls wiederherstellen.
Datumzeit-Parameter
Ein als Funktionseingabe spezifiziertes Datum-, Datumzeit- oder Zeitfeld kann ein beliebiges Datums-, Datumzeit- oder Zeitformat verwenden, vorausgesetzt die Felddefinition definiert das Format korrekt.
Datum-, Datumzeit- und Zeiteingaben mischen
Sie werden nicht daran gehindert, Datum-, Datumzeit- und Zeitwerte als Eingaben der Funktion MATCH( ) zu mischen. Die gleichzeitige Verwendung dieser Datumzeit-Untertypen kann jedoch wenig sinnvolle Ergebnisse zur Folge haben.
Analytics verwendet entsprechende serielle Zahlen, um Datumzeit-Berechnungen durchzuführen. Daher wird der Zeitteil des Datumszeitwerts bei der Berechnung stets berücksichtigt, selbst wenn Sie lediglich an dem Datumsteil interessiert sind.
Betrachten Sie dazu die folgenden Beispiele:
Gibt „T“ zurück, weil der 31. Dezember 2014 dem zweiten Testwert entspricht:
MATCH(`20141231`;`20141229`;`20141231`)
Gibt „F“ zurück, obwohl der Vergleichswert und der zweite Wert in Test das identische Datum (31. Dezember 2014) aufweisen:
MATCH(`20141231 120000`;`20141229`;`20141231`)
Wenn wir uns die entsprechenden Seriennummern dieser beiden Ausdrücke ansehen, lässt sich erkennen, warum der zweite Wert als falsch ausgewertet wird.
Gibt „T“ zurück, weil die Seriennummer von Vergleichswert der zweiten Seriennummer von Test entspricht:
MATCH(42003,000000; 42001,000000; 42003,000000)
Gibt „F“ zurück, weil die Seriennummer Vergleichswert keinem der Werte in Test entspricht:
MATCH(42003,500000; 42001,000000; 42003,000000)
Der Datumsteil der Seriennummern 42003,500000 und 42003,000000 ist identisch, der Zeitteil aber nicht. 0,500000 ist die Seriennummer, die 12.00 Uhr entspricht.
Datumzeit-Untertypen harmonisieren
Um Probleme durch die Mischung von Datumzeit-Untertypen zu vermeiden, können Sie Funktionen zur Harmonisierung von Untertypen verwenden.
Zum Beispiel verwendet dieser Ausdruck dieselben Anfangswerte wie das zweite Beispiel oben, gibt jedoch „T“ statt „F“ aus:
MATCH(CTOD(DATE(`20141231 120000`;"JJJJMMTT");"JJJJMMTT");`20141229`; `20141231`)
Einen literalen Datum-, Datumzeit- oder Zeitwert angeben
Wenn für eine dieser Funktionseingaben ein literaler Datums-, Datumzeit- oder Zeitwert angegeben wird, können lediglich die in der folgenden Tabelle aufgeführten Formate verwendet werden und die Werte müssen in Backquotes gesetzt werden – zum Beispiel `20141231`.
Verwenden Sie keine Trennzeichen wie zum Beispiel Schrägstriche (/) oder Doppelpunkte (:) zwischen den einzelnen Datums- und Zeitkomponenten.
-
Datumzeit-Werte – Sie können eine beliebige Kombination der in der folgenden Tabelle aufgelisteten Datums-, Trennzeichen- und Zeitformate verwenden. Das Datum muss der Zeit vorangestellt werden und durch ein Trennzeichen getrennt werden. Gültige Trennzeichen sind ein einzelnes Leerzeichen, der Buchstabe ‘t’ oder der Buchstabe ‘T’.
-
Zeitwerte – Sie müssen Zeiten im 24-Stunden-Format angeben. Verschiebungen zur Coordinated Universal Time (UTC) muss ein Plus- (+) oder Minuszeichen (-) vorangehen.
Beispielformate
Beispiel für Literalwerte
JJJJMMTT
`20141231`
JJMMTT
`141231`
JJJJMMTT hhmmss
`20141231 235959`
JJMMTTthhmm
`141231t2359`
JJJJMMTTThh (YYYYMMDDThh)
`20141231T23`
JJJJMMTT hhmmss+/-hhmm
(UTC Anpassung)
`20141231 235959-0500`
JJMMTT hhmm+/-hh
(UTC Anpassung)
`141231 2359+01`
thhmmss
`t235959`
Thhmm
`T2359`
Hinweis
Verwenden Sie bei Daten mit einer UTC-Anpassung in Zeitformaten hh nicht alleine. Vermeiden Sie zum Beispiel: hh+hhmm. Die Ergebnisse können sonst unzuverlässig sein.