inmonths - fonction de script et fonction de graphique
Cette fonction permet de déterminer si un horodatage tombe pendant la même période (mois, période de deux mois, trimestre, période de quatre mois ou semestre) que la date de référence. Il est également possible de déterminer si l'horodatage se situe dans une période passée ou future.
Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.
La fonction inmonths() divise l'année en segments en fonction de l'argument n_months fourni. Elle détermine ensuite si chaque horodatage évalué tombe dans le même segment que celui de l'argument base_date. Si, toutefois, un argument period_no est fourni, la fonction détermine si les horodatages tombent pendant une période précédente ou suivante par rapport à la base_date.
Les segments suivants de l'année sont disponibles dans la fonction en tant qu'arguments n_month.
Arguments n_month
Période
Nombre de mois
mois
1
période de deux mois
2
trimestre
3
période de quatre mois
4
semestre
6
Cas d'utilisation
La fonction inmonths() renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression if expression. En utilisant la fonction inmonths(), vous pouvez sélectionner la période à évaluer. Par exemple, en laissant l'utilisateur identifier les produits fabriqués au cours du mois, du trimestre ou du semestre d'une période donnée.
booléen
Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.
Arguments
Argument
Description
n_months
Nombre de mois définissant la période. Entier ou expression aboutissant à un entier qui doit correspondre à l'une de ces valeurs : 1 (qui équivaut à la fonction inmonth()), 2 (période de deux mois), 3 (qui équivaut à la fonction inquarter()), 4 (période de quatre mois) ou 6 (semestre).
timestamp
Date à comparer à base_date.
base_date
Date utilisée pour évaluer la période.
period_no
Il est possible de décaler la période à l'aide de l'argument period_no, d'un entier ou d'une expression aboutissant à un entier, où la valeur 0 indique la période comprenant l'argument base_date. Les valeurs négatives spécifiées pour period_no indiquent les périodes passées tandis que les valeurs positives désignent les périodes à venir.
first_month_of_year
Si vous voulez utiliser des exercices (financiers) qui ne commencent pas en janvier, indiquez une valeur comprise entre 2 et 12 dans l'argument first_month_of_year.
Vous pouvez utiliser les valeurs suivantes pour définir le premier mois de l'année dans l'argument first_month_of_year :
Valeurs first_month_of_year
Mois
Valeur
Février
2
Mars
3
Avril
4
Mai
5
Juin
6
Juillet
7
Août
8
Septembre
9
Octobre
10
Novembre
11
Décembre
12
Paramètres régionaux
Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/JJ/AAAA. Le format de date est indiqué dans l'instruction SET DateFormat de votre script de chargement de données. Le format de date par défaut peut être différent dans votre système en raison de vos paramètres régionaux et d'autres facteurs. Vous pouvez modifier les formats utilisés dans les exemples ci-dessous en fonction de vos besoins. Ou vous pouvez modifier les formats utilisés dans votre script de chargement pour qu'ils correspondent à ceux de ces exemples.
Les paramètres régionaux par défaut des applications sont basés sur les paramètres système régionaux de l'ordinateur ou du serveur sur lequel Qlik Sense est installé. Si le serveur Qlik Sense auquel vous accédez est configuré sur la Suède, l'éditeur de chargement de données utilisera les paramètres régionaux suédois pour les dates, l'heure et la devise. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Sense. Qlik Sense sera affiché dans la même langue que celle du navigateur que vous utilisez.
Exemples de fonction
Exemple
Résultat
inmonths(4, '01/25/2013', '04/25/2013', 0)
Renvoie TRUE. Car la valeur d'horodatage, 01/25/2013, est comprise dans la période de quatre mois du 01/01/2013 au 04/30/2013, qui comprend la valeur de base_date, 04/25/2013.
inmonths(4, '05/25/2013', '04/25/2013', 0)
Renvoie FALSE. Car la date 05/25/2013 se trouve en dehors de la période indiquée dans l'exemple précédent.
inmonths(4, '11/25/2012', '02/01/2013', -1 )
Renvoie TRUE. Car la valeur de period_no, -1, décale la période de recherche de quatre mois en arrière (la valeur de n-months), ce qui définit la période de recherche du 09/01/2012 au 12/31/2012.
inmonths(4, '05/25/2006', '03/01/2006', 0, 3)
Renvoie TRUE. Car la valeur de first_month_of_year est définie sur 3, ce qui définit la période de recherche du 03/01/2006 au 07/30/2006 au lieu du 01/01/2006 au 04/30/2006.
Exemple 1 - aucun argument supplémentaire
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Un ensemble de données contenant un ensemble de transactions pour 2022 est chargé dans une table appelée ‘Transactions’.
Chargement précédent avec une variable supplémentaire, ‘in_months’, qui détermine si les transactions ont eu lieu au cours du même trimestre que celui du 15 mai 2022.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
in_months
Tableau de résultats
date
in_months
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Le champ ‘in_months’ est créé dans l'instruction LOAD précédente à l'aide de la fonction inmonths(). Le premier argument fourni est 3, qui divise l'année en segments trimestriels. Le deuxième argument identifie le champ en cours d'évaluation, le champ date, dans cet exemple. Le troisième argument est une date codée en dur pour le 15 mai, qui est la base_date, et l'argument final est un argument period_no égal à 0.
Mai tombe pendant le deuxième trimestre de l'année. Par conséquent, toute transaction effectuée entre le 1er avril et le 30 juin renverra un résultat booléen TRUE. Cela est validé dans le tableau de résultats.
Exemple 2 - period_no
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Un ensemble de données contenant un ensemble de transactions pour 2022 est chargé dans une table appelée ‘Transactions’.
Chargement précédent avec une variable supplémentaire, ‘previous_quarter’, qui détermine si les transactions ont eu lieu au cours du trimestre avant le 15 mai 2022.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
previous_quarter
Tableau de résultats
date
trimestre précédent
2/19/2022
-1
3/7/2022
-1
3/30/2022
-1
4/5/2022
0
4/16/2022
0
5/1/2022
0
5/7/2022
0
5/22/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
La fonction évalue si les transactions ont eu lieu au cours du premier trimestre de l'année via la valeur -1 comme argument period_no dans la fonction inmonths(). Le 15 mai est la base_date et tombe pendant le deuxième trimestre de l'année (avril-juin).
Par conséquent, toute transaction effectuée entre janvier et mars renverra un résultat booléen TRUE.
Exemple 3 - first_month_of_year
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Un ensemble de données contenant un ensemble de transactions pour 2022 est chargé dans une table appelée ‘Transactions’.
Chargement précédent avec une variable supplémentaire, ‘in_months’, qui détermine si les transactions ont eu lieu au cours du même trimestre que celui du 15 mai 2022.
Dans cet exemple, la stratégie organisationnelle exige que mars soit le premier mois de l'exercice financier.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
in_months
Tableau de résultats
date
in_months
2/19/2022
0
3/7/2022
-1
3/30/2022
-1
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Si on utilise 3 comme argument first_month_of_year dans la fonction inmonths(), la fonction commence l'année le 1er mars. La fonction inmonths() divise ensuite l'année en trimestres : mars-mai, juin-août, sept-nov, déc-févr. Par conséquent, le 15 mai tombe pendant le premier trimestre de l'année (mars-mai).
Toute transaction qui a lieu au cours de ces mois renverra un résultat booléen TRUE.
Exemple 4 - exemple objet graphique
Vue d'ensemble
Le même ensemble de données et le même scénario que ceux du premier exemple sont utilisés.
Cependant, dans cet exemple, l'ensemble de données est le même et chargé dans l'application. Le calcul qui détermine si les transactions ont eu lieu pendant le même trimestre que celui du 15 mai 2022 est créé sous forme de mesure dans un graphique de l'application.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
date
Pour calculer si des transactions ont eu lieu au cours du même trimestre que celui du 15 mai, créez la mesure suivante :
=inmonths(3,date,'05/15/2022', 0)
Tableau de résultats
date
=inmonths(3,date,'05/15/2022', 0)
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Le champ ‘in_months’ est créé dans le graphique à l'aide de la fonction inmonths(). Le premier argument fourni est 3, qui divise l'année en segments trimestriels. Le deuxième argument identifie le champ en cours d'évaluation, le champ date, dans cet exemple. Le troisième argument est une date codée en dur pour le 15 mai, qui est la base_date, et l'argument final est un argument period_no égal à 0.
Mai tombe pendant le deuxième trimestre de l'année. Par conséquent, toute transaction effectuée entre le 1er avril et le 30 juin renverra un résultat booléen TRUE. Cela est validé dans le tableau de résultats.
Exemple 5 - scénario
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données chargé dans une table appelée ‘Products’.
La table contient les champs suivants :
product ID
product type
manufacture date
cost price
L'utilisateur final souhaite un graphique qui affiche, par type de produit, le coût des produits fabriqués au cours du premier segment de 2021. L'utilisateur souhaite pouvoir définir la longueur de ce segment.
La fonction inmonths() utilise l'entrée utilisateur comme argument pour définir la taille du segment de début de l'année. La fonction transmet la date de fabrication de chacun des produits comme deuxième argument de la fonction inmonths(). Avec le 1er janvier utilisé comme troisième argument dans la fonction inmonths(), les produits dont les dates de fabrication tombent dans le segment de début de l'année renverront une valeur booléenne TRUE, et, par conséquent, la fonction sum additionnera les coûts de ces produits.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !