Renvoie une valeur logique indiquant si la valeur spécifiée correspond à l'une des valeurs à laquelle celle-ci est comparée.

MATCH(valeur_à_comparer; test <;...n>)
Nom Type Description
valeur_à_comparer

caractère

numérique

DateHeure

Le champ, l'expression, ou la valeur littérale à tester pour les rapprochements.
test <;...n>

caractère

numérique

DateHeure

Tout champ, expression ou valeur littérale que vous souhaitez comparer à valeur_à_comparer.

Vous pouvez indiquer autant de valeurs de test que nécessaire, cependant, toutes les valeurs indiquées doivent appartenir au même type de données :

MATCH(valeur_à_comparer; `20140930`; `20141030`)

Remarque

Les valeurs d'introduction de la fonction MATCH( ) peuvent être des données de type caractère, numérique ou DateHeure. Vous ne pouvez pas mélanger les types de données. Toutes les valeurs d'introduction doivent appartenir à la même catégorie de données.

Logique. Renvoie T (« true », vrai) si au moins une correspondance est trouvée ; renvoie F (« false », faux) dans les autres cas.

Exemples basiques

Remarque

Les valeurs de retour pour les comparaisons de caractères supposent que SET EXACT est sur OFF (paramètre par défaut), sauf indication contraire.

Test de valeurs littérales

Renvoie T :

MATCH("ABC"; "BCD"; "CDE"; "AB")

Renvoie F :

MATCH(98; 99; 100; 101)

Test d'un champ

Renvoie T pour tous les enregistrements dont le champ Ville_fournisseur contient « Phoenix », « Austin » ou « Los Angeles ». Renvoie F autrement :

MATCH(Ville_fournisseur; "Phoenix"; "Austin"; "Los Angeles")

Renvoie T pour tous les enregistrements dont le champ Ville_fournisseur ne contient pas « Phoenix », « Austin » ou « Los Angeles ». Renvoie F autrement :

NOT MATCH(Ville_fournisseur; "Phoenix"; "Austin"; "Los Angeles")

Renvoie T pour tous les enregistrements dont le champ Ville_fournisseur contient « PHOENIX », « AUSTIN » ou « LOS ANGELES », indépendamment de la casse des caractères dans le champ. Renvoie F autrement :

Les valeurs du champ Ville_fournisseur sont converties en majuscules avant d'être comparées avec les noms de villes (déjà en majuscules).

MATCH(UPPER(Ville_fournisseur); "PHOENIX"; "AUSTIN"; "LOS ANGELES")

Test de plusieurs champs

Renvoie T pour tous les enregistrements dont le champ Ville_fournisseur, Ville ou Ville_2 contient « Phoenix ». Renvoie F autrement :

MATCH("Phoenix"; Ville_fournisseur; Ville; Ville_2)

Comportement de SET EXACT

Renvoie T pour tous les enregistrements dont le champ Code_Produit comporte les codes produit "A", "D" ou "F" ou des codes produit commençant par "A", "D" ou "F". Renvoie F autrement :

MATCH(Code_Produit; "A"; "D"; "F")

Renvoie T pour tous tous les enregistrements dont le champ Code_Produit comporte un code produit à un seul caractère "A", "D" ou "F". Renvoie F dans les autres cas (SET EXACT doit être ON) :

MATCH(Code_Produit; "A"; "D"; "F")

Comparaison de deux champs

Renvoie T pour tous les enregistrements qui contiennent des adresses de fournisseur et d'employé identiques. Renvoie F autrement :

Vous devrez peut-être utiliser des fonctions supplémentaires pour normaliser le format des adresses fournisseur et employé.

MATCH(Adresse_fournisseur; Adresse_employé)

Comparaison de dates

Renvoie T pour tous les enregistrements dont la date de facture est le 30 septembre 2014 ou le 30 octobre 2014. Renvoie F autrement :

MATCH(Date_facture; `20140930`; `20141030`)

Exemples avancés

Extraction des enregistrements de stock irréguliers

Utilisez une instruction IF et la fonction MATCH( ) pour extraire tous les enregistrements contenant différents montants dans le champ Valeur_de_stock_au_coût et dans le champ calculé Coût_x_Quantité :

EXTRACT RECORD IF NOT MATCH(Valeur_de_stock_au_coût; Coût_x_Quantité) TO "Montants_non_correspondants"

Extraction d'enregistrements pour les départements 101, 103 et 107

Utilisez une instruction IF et la fonction MATCH( ) pour extraire uniquement les enregistrements associés aux départements 101, 103 ou 107 :

EXTRACT RECORD IF MATCH(Dept; "101"; "103"; "107") TO "Trois_Départements"

Utiliser MATCH( ) plutôt que l'opérateur OR

La fonction MATCH( ) permet de remplacer des expressions qui utilisent l'opérateur OR.

Par exemple :

MATCH(Ville; "Phoenix"; "Austin"; "Los Angeles")

est équivalent à

Ville="Phoenix" OR Ville="Austin" OR Ville="Los Angeles"

Précision décimale des valeurs d'introduction numériques

Lorsque la précision décimale des valeurs d'introduction numériques comparées est différente, la comparaison utilise le niveau de précision le plus élevé.

Renvoie T, car 1,23 est égal à 1,23 :

MATCH(1,23; 1,23; 1,25)

Renvoie F, car 1,23 n'est pas égal à 1,234 si l'on tient compte de la troisième décimale :

MATCH(1,23; 1,234; 1,25)

Paramètres de type caractère

Respect de la casse

La fonction MATCH( ) est sensible à la casse lorsque vous l'utilisez avec des données caractères. Lors de la comparaison des caractères, « a » n'est pas considéré comme étant équivalent à « A ».

Renvoie F :

MATCH("a";"A";"B";"C")

Si vous travaillez avec des données qui incluent des incohérences de casse, vous pouvez utiliser la fonction UPPER( ) pour convertir les valeurs et remédier aux problèmes de casse avant de vous servir de la fonction MATCH( ).

Renvoie T :

MATCH(UPPER("a"); UPPER("A"); UPPER("B");  UPPER("C"))

Rapprochement partiel

Le rapprochement partiel est pris en charge pour les comparaisons de caractère. Chaque valeur comparée peut être contenue par l'autre valeur et être considérée comme une correspondance.

Ces deux exemples renvoient T :

MATCH("AB"; "ABC")
MATCH("ABC"; "AB")

Remarque

La plus petite valeur doit apparaître au début de la valeur plus longue pour constituer une correspondance.

Rapprochement partiel et SET EXACT

Le rapprochement partiel est activé lorsque SET EXACT = OFF, qui est le paramètre par défaut d'Analytics. Si SET EXACT = ON, le rapprochement partiel est désactivé et les valeurs de comparaison doivent correspondre exactement pour constituer un rapprochement.

Les deux exemples précédents sont False (faux) lorsque SET EXACT est sur ON.

Pour plus d'informations sur SET EXACT (option Comparaisons exactes de caractères), consultez la rubrique Commande SET.

Activation et désactivation de SET EXACT

Si vous souhaitez vous assurer que l'option Comparaisons exactes de caractères n'est pas utilisée avec la fonction MATCH( ), vérifiez que l'option est décochée dans l'onglet Table de la boîte de dialogue Options (Outils > Options).

Si vous utilisez un script, vous pouvez ajouter la commande SET EXACT OFF avant l'apparition de la fonction MATCH( ). Si nécessaire, vous pouvez restaurer l'état antérieur grâce à la commande SET EXACT ON.

Paramètres DateHeure

Un champ date, DateHeure ou heure indiqué comme entrée de fonction peut utiliser n'importe quel format de date, DateHeure ou heure, tant que la définition de champ définit correctement le format.

Mélange d'entrées de type date, DateHeure et heure

Il n'est pas impossible de mélanger des valeurs de date, DateHeure et heure dans les entrées de la fonction MATCH( ), mais le fait de mélanger ces sous-types de DateHeure peut aboutir à des résultats qui n'ont pas de sens.

Analytics utilise des équivalents en chiffres sériels pour traiter les calculs de DateHeure, de sorte que même si vous êtes intéressé uniquement par la portion correspondant à la date d'une valeur DateHeure, la portion correspondant à l'heure fait toujours partie du calcul.

Prenons les exemples suivants :

Renvoie T, car le 31 décembre 2014 correspond à la deuxième valeur test :

MATCH(`20141231`;`20141229`;`20141231`)

Renvoie F, même si la valeur_à_comparer et la deuxième valeur test ont une date identique au 31 décembre 2014 :

MATCH(`20141231 120000`;`20141229`;`20141231`)

Si nous regardons l'équivalent en chiffre sériel de ces deux expressions, nous pouvons voir pourquoi le second génère une évaluation qui a pour résultat F (faux).

Renvoie T, car la valeur_à_comparer du nombre sériel est égale au test du deuxième nombre sériel :

MATCH(42003,000000; 42001,000000; 42003,000000)

Renvoie F, car le nombre sériel valeur_à_comparer n'est égal à aucune valeur de test :

MATCH(42003,500000; 42001,000000; 42003,000000)

La partie date des nombres sériels 42003,500000 et 42003,000000 correspond, mais ce n'est pas le cas des parties heure. 0,500000 est le nombre sériel équivalent de 12:00 PM.

Harmoniser les sous-types DateHeure

Pour éviter les problèmes pouvant découler du mélange de sous-types DateHeure, vous pouvez utiliser des fonctions pour harmoniser les sous-types.

Par exemple, cette expression, qui utilise les mêmes valeurs initiales que le deuxième exemple ci-dessus, renvoie T plutôt que F :

MATCH(CTOD(DATE(`20141231 120000`;"AAAAMMJJ");"AAAAMMJJ");`20141229`; `20141231`)

Spécification d'une valeur littérale de date, de DateHeure ou d'heure

Lorsque vous indiquez une valeur littérale de date, DateHeure ou heure pour l'une des entrées de fonction, vous êtes limité aux formats de la table ci-dessous, et vous devez entourer la valeur de guillemets inversés – par exemple, `20141231`.

N'utilisez aucun séparateur comme les barres obliques (/) ou les deux points (:) entre les composants individuels des dates ou des heures.

  • Valeurs DateHeure : vous pouvez utiliser n'importe laquelle des combinaisons de formats de date, de séparateur et d'heure répertoriées dans le tableau ci-dessous. La date doit précéder l'heure, et vous devez utiliser un séparateur entre les deux. Les séparateurs valides sont un espace unique, la lettre « t » ou la lettre « T ».

  • Valeurs heure : vous devez indiquer l'heure à l'aide de l'horloge de 24 heures. Les décalages par rapport à l'heure universelle coordonnée (UTC) doivent être préfacés d'un signe plus (+) ou d'un signe moins (-).

    Exemples de formats

    Exemples de valeurs littérales

    AAAAMMJJ

    `20141231`

    AAMMJJ

    `141231`

    AAAAMMJJ hhmmss

    `20141231 235959`

    AAMMJJthhmm

    `141231t2359`

    AAAAMMJJThh

    `20141231T23`

    AAAAMMJJ hhmmss+/-hhmm

    (décalage UTC)

    `20141231 235959-0500`

    AAMMJJ hhmm+/-hh

    (décalage UTC)

    `141231 2359+01`

    thhmmss

    `t235959`

    Thhmm

    `T2359`

    Remarque

    N'utilisez pas hh seul dans le format d'heure principal avec des données qui ont un décalage UTC. Par exemple, évitez : hh+hhmm. Il se peut que les résultats ne soient pas fiables.