Renvoie une valeur logique indiquant si la valeur indiquée fait partie d'une plage.
Syntaxe
BETWEEN(valeur; min; max)
Paramètres
Nom | Type | Description |
---|---|---|
valeur |
caractère numérique DateHeure |
Le champ, l'expression, ou la valeur littérale à tester. |
min |
caractère numérique DateHeure |
Valeur minimale de la plage. Peut être un champ, une expression ou une valeur littérale. |
max |
caractère numérique DateHeure |
Valeur maximale de la plage. Peut être un champ, une expression ou une valeur littérale. |
Remarque
La plage d’évaluation par rapport à T (vrai) inclut les valeurs min et max.
Pour plus d'informations sur les plages de caractères, consultez la rubrique Comportement de SET EXACT.
Sortie
Logique. Renvoie T (vrai) si la valeur est supérieure ou égale à la valeur min, et inférieure ou égale à la valeur max. Renvoie F (faux) dans tous les autres cas.
Exemples
Exemples basiques
Entrée de type numérique
Renvoie T :
BETWEEN(500;400;700)
Renvoie F :
BETWEEN(100;400;700)
Entrée de type caractère
Renvoie T :
BETWEEN("B";"A";"C")
Renvoie « F » car la comparaison des caractères est sensible à la casse, c'est pourquoi il n'existe aucune correspondance pour la valeur « b » minuscule entre « A » et « C » majuscules.
BETWEEN("b";"A";"C")
Entrée de DateHeure
Renvoie T :
BETWEEN(`141230`;`141229`;`141231`)
Renvoie « T » pour toutes les valeurs dans le champ Heure_connexion de 07:00:00 AM à 09:00:00 AM inclus ; renvoie « F » dans tous les autres cas :
BETWEEN(Heure_connexion;`t070000`;`t090000`)
Comportement de SET EXACT
Renvoie « T » pour toutes les valeurs dans le champ Nom qui commencent par les lettres allant de "C" à "K" inclus ; renvoie "F" dans tous les autres cas (SET EXACT doit être sur OFF) :
BETWEEN(Nom; "C"; "K")
Renvoie « T » pour toutes les valeurs dans le champ Nom qui commencent par les lettres allant de "C" à "J" inclus ; renvoie « F » dans tous les autres cas (SET EXACT doit être sur ON). Renvoie aussi « T » pour la seule lettre "K" :
BETWEEN(Nom; "C"; "K")
Entrée de champ
Renvoie « T » pour toutes les valeurs du champ Date_facture compris entre le 30 septembre 2014 et le 30 octobre 2014 y compris, et renvoie « F » dans tous les autres cas :
BETWEEN(Date_facture; `20140930`; `20141030`)
Renvoie « T » pour tous les enregistrements dans lesquels la date de facture n'est pas comprise entre la date du bon de commande et la date de paiement y compris, et renvoie « F » dans tous les autres cas :
NOT BETWEEN(Date_facture; Date_BdC; Date_Paiement)
Renvoie « T » pour toutes les valeurs du champ Montant_facture comprises entre 1 000 $ et 5 000 $ y compris, et renvoie « F » dans tous les autres cas :
BETWEEN(Montant_Facture; 1000, 5000)
Exemples avancés
Création d'un filtre pour visualiser une tranche salariale
Dans l'exemple suivant, la table d'échantillonnage Liste_employés est ouverte et applique un filtre limitant les enregistrements affichés pour inclure seulement les employés qui gagnent un salaire compris entre 40 000 et 50 000 €.
OPEN Liste_Employés SET FILTER TO BETWEEN(Salaire; 40000,00; 50000,00)
Créer un filtre pour découvrir des dates dans une plage qui change
Vous avez créé une table qui joint des données du système de gestion des déplacements et des frais de votre société aux données de la carte bancaire de la société. Vous souhaitez découvrir les cas où un employé s'est vu rembourser des frais d'hôtel qui ont également été facturés sur la carte bancaire de la société.
Vous joignez les deux jeux de données du champ Montant et vous prévoyez d'utiliser les dates du séjour à l'hôtel ainsi que la date des frais T&E (déplacement et loisirs) pour confirmer que les deux montants se rapportent à la même dépense. Le problème est que la date figurant dans le système T&E peut différer d'un jour ou deux des dates de l'hôtel dans les données de la carte bancaire de la société.
L'exemple ci-dessous ouvre la table données_dépenses_jointes et applique un filtre qui recherche les dates T&E dans une plage de dates de l'hôtel. En utilisant des champs plutôt que les valeurs de date proprement dites, les plages se décalent avec les données.
OPEN Données_dépenses_jointes SET FILTER TO BETWEEN(Date_T_E, Date_arrivée-2, Date_arrivée+2) OR BETWEEN(Date T_E, Date_départ-2, Date_départ+2)
Remarques
Types de données prises en charge
Les valeurs d'introduction de la fonction BETWEEN( ) peuvent être des données de type numérique, caractère ou DateHeure. Vous ne pouvez pas mélanger les types de données. Les trois valeurs d'introduction doivent toutes appartenir à la même catégorie de données.
Utilisation de BETWEEN( ) au lieu de l'opérateur AND
Cette fonction permet de remplacer des expressions qui utilisent l'opérateur AND.
Par exemple :
BETWEEN(Montant_Facture; 1000, 5000)
est équivalent à
Montant_Facture >= 1000 AND Montant_Facture<= 5000
Ordre de min et de max
Dans la fonction BETWEEN( ), l'ordre des paramètres min et max n'est pas important parce qu'Analytics identifie automatiquement quelles sont les valeurs minimum et maximum.
Les deux exemples ci-dessous renvoient T :
BETWEEN(2500; 1000; 5000)
BETWEEN(2500; 5000; 1000)
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 :
BETWEEN(1,23; 1,23; 1,25)
Renvoie F, car 1,23 est inférieur à 1,234 si l'on tient compte de la troisième décimale :
BETWEEN(1,23; 1,234; 1,25)
Données de type caractère
Respect de la casse
La fonction BETWEEN( ) est sensible à la casse lorsque vous l'utilisez avec des données caractère. Lors de la comparaison des caractères, « a » n'est pas considéré comme étant équivalent à « A ».
Renvoie F :
BETWEEN("B";"a";"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 BETWEEN( ).
Renvoie T :
BETWEEN(UPPER("B"); UPPER("a"); UPPER("C"))
Rapprochement partiel
Le rapprochement partiel est pris en charge pour les comparaisons de caractère.
valeur peut être contenue par min.
Renvoie T, même si valeur "AB" apparaît comme étant inférieure à min "ABC" :
BETWEEN("AB"; "ABC"; "Z")
max peut être contenue par valeur.
Renvoie T, même si valeur "ZZ" apparaît comme étant inférieure à max "Z" :
BETWEEN("ZZ"; "ABC"; "Z")
Remarque
La plus petite valeur de la comparaison de caractères 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 BETWEEN( ), vérifiez si l'option est décochée dans l'onglet Table de la boîte de dialogue Options ( ).
Si vous utilisez un script, vous pouvez ajouter la commande SET EXACT OFF avant l'apparition de la fonction BETWEEN( ). 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 trois entrées de la fonction BETWEEN( ), 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 PM le 31 décembre 2014 se situe dans la plage spécifiée par min et max :
BETWEEN(`20141231`;`20141229`;`20141231`)
Renvoie F, même si 12:00 PM le 31 décembre 2014 semble se situer dans la plage spécifiée par min et max :
BETWEEN(`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 du nombre sériel est égale au nombre sériel max :
BETWEEN(42003,000000; 42001,000000; 42003,000000)
Renvoie F, car la valeur du nombre sériel est supérieure au nombre sériel max :
BETWEEN(42003,500000; 42001,000000; 42003,000000)
Le chiffre sériel 42003,500000 est plus grand que 42003,000000 et par conséquent à l'extérieur de la fourchette, même si les deux dates sont identiques. 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 :
BETWEEN(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.