Modificateurs d'ensemble

Il est possible de modifier un ensemble à l'aide d'une sélection supplémentaire ou modifiée. Une telle modification peut être écrite dans l'expression d'ensemble.

Le modificateur se compose d'un ou de plusieurs noms de champ, chacun suivi d'une sélection devant être effectuée dans le champ et placé entre crochets angulaires : < et >. Par exemple : <Year={2007,2008},Region={US}>. Les noms et les valeurs des champs peuvent être placés entre guillemets comme à l'accoutumée, par exemple : <[Sales Region]={’West coast’, ’South America’}>.

Un modificateur d'ensemble permet de modifier la sélection de l'identificateur d'ensemble précédent. Si aucun identificateur d'ensemble n'est référencé, l'état de sélection actif est implicite.

Il existe plusieurs manières de définir la sélection :

  • Sélection basée sur un autre champ
  • Sélection basée sur des ensembles d'éléments (liste de valeurs de champ dans le modificateur)
  • Exclusion forcée

Ces méthodes sont décrites dans les sous-sections suivantes.

Sélection basée sur un autre champ

Le cas le plus simple est celui d'une sélection basée sur les valeurs sélectionnées d'un autre champ, par exemple <OrderDate = DeliveryDate>. Ce modificateur récupère les valeurs sélectionnées à partir de DeliveryDate pour les appliquer en tant que sélection à OrderDate. Si vous disposez de nombreuses valeurs distinctes (plus de deux cents), cette opération est déconseillée, car elle mobilise énormément les ressources du processeur.

Sélection basée sur des ensembles d'éléments

L'exemple d'expression d'ensemble le plus courant est celui basé sur une liste de valeurs de champ entre accolades. Les valeurs sont séparées par des virgules, comme dans l'exemple suivant : <Year = {2007, 2008}>. Les accolades définissent un ensemble d'éléments, ceux-ci pouvant correspondre à des valeurs de champ explicites ou à des recherches de valeurs de champ.

À moins que les valeurs énumérées contiennent des espaces ou des caractères spéciaux, les guillemets ne sont pas nécessaires. Les valeurs énumérées seront simplement mises en correspondance avec les valeurs de champ. Cette comparaison n'est pas sensible à la casse des caractères.

Si les valeurs énumérées contiennent des espaces ou des caractères spéciaux, ou si vous souhaitez utiliser des caractères génériques, vous devez mettre les valeurs entre guillemets. Il convient d'utiliser des guillemets simples si les valeurs énumérées sont des valeurs de champ explicites. Une correspondance sensible à la casse des caractères sera ensuite effectuée entre les valeurs énumérées et les différentes valeurs de champ.

Des guillemets doubles doivent être utilisés pour les recherches, par exemple, des chaînes qui contiennent des caractères génériques ou qui commencent par un opérateur relationnel ou par un signe égal. Par exemple, <Ingredient = {"*Garlic*"}> entraînera la sélection de tous les ingrédients contenant la chaîne ’Garlic’. Les guillemets doubles peuvent être remplacés par des crochets, par exemple : <Ingredient = {[*Garlic*]}>. Les guillemets doubles peuvent également être remplacés par des accents graves, par exemple : <Ingredient = {`*Garlic*`}>. Les recherches ne sont pas sensibles à la casse des caractères.

Remarque:

Dans les versions précédentes de Qlik Sense, il n'y avait pas de distinction entre les guillemets simples et doubles, et toutes les chaînes entre guillemets étaient traitées comme des recherches. Afin de garantir la compatibilité avec les anciennes versions, les applications créées dans des versions antérieures de Qlik Sense continueront à fonctionner de la même manière qu'auparavant. Les applications créées dans Qlik Sense November 2017 ou une version ultérieure respecteront la différence entre les deux types de guillemets.

Exclusion forcée

Enfin, pour les champs en mode AND, il existe également l'option d'exclusion forcée. Si vous souhaitez forcer l'exclusion de valeurs de champ spécifiques, placez un tilde ~ devant le nom du champ.

Remarque: Le mode AND est uniquement pris en charge via l'utilisation de Qlik Engine API.

Examples and results:  

Exemples Résultats
sum( {1<Region= {USA} >} Sales ) Renvoie les ventes pour la région USA sans tenir compte de la sélection active.
sum( {$<Region = >} Sales ) Renvoie les ventes pour la sélection active en ayant supprimé la sélection effectuée dans 'Region'.
sum( {<Region = >} Sales )

Renvoie les mêmes résultats que l'exemple immédiatement au-dessus. Lorsque l'ensemble à modifier est omis, la fonction utilise $.

Remarque: La syntaxe des deux exemples précédents est interprétée comme aucune sélection dans Region, ce qui signifie que toutes les régions en fonction des autres sélections sont possibles. Elle n'est pas équivalente à la syntaxe <Region = {}> (ou tout autre texte situé à droite du signe égal produisant implicitement un ensemble d'éléments vide) qui est interprétée comme aucune région.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Renvoie les ventes pour la sélection active mais en utilisant de nouvelles sélections dans les champs Year et Region.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Le champ Ingredient est défini en mode AND.

Renvoie les ventes pour la sélection active mais en utilisant une exclusion forcée de tous les ingrédients contenant la chaîne garlic.

sum( {$<Year = {“2*”}>} Sales ) Renvoie les ventes pour la sélection active, mais avec toutes les années commençant par le chiffre 2, c'est-à-dire très vraisemblablement les années 2000 et suivantes, sélectionnées dans le champ Year.
sum( {$<Year = {“2*”,”198*”}>} Sales ) Comme précédemment, à ceci près que les années 1980 sont désormais incluses dans la sélection.
sum( {$<Year = {“>1978<2004”}>} Sales ) Renvoie les ventes pour les sélections actives, mais en utilisant une recherche numérique permettent de définir la plage d'années sur laquelle additionner les ventes.