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 (Extras > 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.