monthsname - fonction de script et fonction de graphique
Cette fonction renvoie une valeur d'affichage représentant la plage des mois de la période (formatée d'après la variable de script MonthNames) de même que l'année. La valeur numérique sous-jacente correspond à un horodatage de la première milliseconde du mois, de la période de deux mois, du trimestre, de la période de quatre mois ou du semestre contenant une date de référence.
La fonction monthsname() divise l'année en segments en fonction de l'argument n_months fourni. Elle évalue ensuite le segment auquel appartient chaque valeur date fournie et renvoie les noms de mois de début et de fin de ce segment, ainsi que l'année. La fonction permet également de renvoyer ces limites à partir des segments précédents ou suivants, ainsi que de redéfinir le premier mois de l'année.
Les segments suivants de l'année sont disponibles dans la fonction en tant qu'arguments n_month :
Arguments n_month possibles
Périodes
Nombre de mois
mois
1
période de deux mois
2
trimestre
3
période de quatre mois
4
semestre
6
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).
date
Date ou horodatage à évaluer.
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.
Cas d'utilisation
La fonction monthsname() est utile lorsque vous souhaitez permettre à l'utilisateur de comparer des agrégations en fonction d'une période de son choix. Par exemple, vous pouvez fournir une variable d'entrée pour permettre à l'utilisateur de voir les ventes totales de produits par mois, trimestre ou semestre.
Ces dimensions peuvent être créées soit dans le script de chargement, en ajoutant la fonction sous forme de champ dans une table Master Calendar, soit en créant la dimension directement dans un graphique sous forme de dimension calculée.
Exemples de fonction
Exemple
Résultat
monthsname(4, '10/19/2013')
Renvoie 'Sep-Dec 2013'. Dans cet exemple et dans les autres, l'instruction SET Monthnames est définie sur Jan;Feb;Mar, etc.
monthsname(4, '10/19/2013', -1)
Renvoie 'May-Aug 2013'.
monthsname(4, '10/19/2013', 0, 2)
Renvoie 'Oct-Jan 2014', car l'année est indiquée comme commençant le mois 2. Par conséquent, la période de quatre mois se termine le premier mois de l'année suivante.
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. Pour plus d'informations, voir Modification des paramètres régionaux des applications et des scripts.
Les paramètres régionaux par défaut des applications sont basés sur le profil utilisateur. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Cloud. Qlik Cloud sera affiché dans la même langue que celle du navigateur que vous utilisez.
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 contenant un ensemble de transactions pour 2022, chargé dans une table appelée Transactions.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
Création d'un champ, bi_monthly_range, qui regroupe les transactions en segments bimestriels et renvoie les noms de limite de ce segment pour chaque transaction.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
bi_monthly_range
Tableau de résultats
date
bi_monthly_range
2/19/2022
Jan-Feb 2022
3/7/2022
Mar-Apr 2022
3/30/2022
Mar-Apr 2022
4/5/2022
Mar-Apr 2022
4/16/2022
Mar-Apr 2022
5/1/2022
May-Jun 2022
5/7/2022
May-Jun 2022
5/22/2022
May-Jun 2022
6/15/2022
May-Jun 2022
6/26/2022
May-Jun 2022
7/9/2022
Jul-Aug 2022
7/22/2022
Jul-Aug 2022
7/23/2022
Jul-Aug 2022
7/27/2022
Jul-Aug 2022
8/2/2022
Jul-Aug 2022
8/8/2022
Jul-Aug 2022
8/19/2022
Jul-Aug 2022
9/26/2022
Sep-Oct 2022
10/14/2022
Sep-Oct 2022
10/29/2022
Sep-Oct 2022
Le champ bi_monthly_range est créé dans l'instruction preceding load à l'aide de la fonction monthsname(). Le premier argument fourni est 2, divisant l'année en segments bimestriels. Le deuxième argument identifie le champ en cours d'évaluation.
La transaction 8195 a lieu le 22 mai. La fonction monthsname() divise initialement l'année en segments bimestriels. La transaction 8195 tombe dans le segment entre le 1er mai et le 30 juin. Par conséquent, la fonction renvoie ces mois au format de la variable système MonthNames, ainsi que l'année, mai-juin 2022.
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 :
Même ensemble de données et même scénario inline que ceux du premier exemple.
Création d'un champ, prev_bi_monthly_range, qui regroupe les transactions en segments bimestriels et renvoie les noms de limite de segment précédent pour chaque transaction.
Ajoutez un autre texte ici, si nécessaire, avec des listes, etc.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
prev_bi_monthly_range
Tableau de résultats
date
prev_bi_monthly_range
2/19/2022
Nov-Dec 2021
3/7/2022
Jan-Feb 2022
3/30/2022
Jan-Feb 2022
4/5/2022
Jan-Feb 2022
4/16/2022
Jan-Feb 2022
5/1/2022
Mar-Apr 2022
5/7/2022
Mar-Apr 2022
5/22/2022
Mar-Apr 2022
6/15/2022
Mar-Apr 2022
6/26/2022
Mar-Apr 2022
7/9/2022
May-Jun 2022
7/22/2022
May-Jun 2022
7/23/2022
May-Jun 2022
7/27/2022
May-Jun 2022
8/2/2022
May-Jun 2022
8/8/2022
May-Jun 2022
8/19/2022
May-Jun 2022
9/26/2022
Jul-Aug 2022
10/14/2022
Jul-Aug 2022
10/29/2022
Jul-Aug 2022
Dans cet exemple, -1 est utilisé comme argument period_no dans la fonction monthsname(). Après avoir initialement divisé une année en segments bimestriels, la fonction renvoie les limites de segment précédentes correspondant au moment où une transaction a lieu.
La transaction 8195 a lieu dans le segment entre mai et juin. Par conséquent, le segment bimestriel précédent se situait entre le 1er mars et le 30 avril. La fonction renvoie donc Mar-Apr 2022.
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 :
Même ensemble de données et même scénario inline que ceux du premier exemple.
Création d'un champ différent, bi_monthly_range, qui regroupe les transactions en segments bimestriels et renvoie les limites de segment de chaque transaction.
Cependant, dans cet exemple, nous devons également définir avril comme 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
bi_monthly_range
Tableau de résultats
date
bi_monthly_range
2/19/2022
Feb-Mar 2021
3/7/2022
Feb-Mar 2021
3/30/2022
Feb-Mar 2021
4/5/2022
Apr-May 2022
4/16/2022
Apr-May 2022
5/1/2022
Apr-May 2022
5/7/2022
Apr-May 2022
5/22/2022
Apr-May 2022
6/15/2022
Jun-Jul 2022
6/26/2022
Jun-Jul 2022
7/9/2022
Jun-Jul 2022
7/22/2022
Jun-Jul 2022
7/23/2022
Jun-Jul 2022
7/27/2022
Jun-Jul 2022
8/2/2022
Aug-Sep 2022
8/8/2022
Aug-Sep 2022
8/19/2022
Aug-Sep 2022
9/26/2022
Aug-Sep 2022
10/14/2022
Oct-Nov 2022
10/29/2022
Oct-Nov 2022
Si on utilise 4 comme argument first_month_of_year dans la fonction monthsname(), la fonction commence l'année le 1er avril, puis divise l'année en segments bimestriels : Apr-May,Jun-Jul,Aug-Sep,Oct-Nov,Dec-Jan,Feb-Mar.
Texte de paragraphe des résultats.
La transaction 8195 a eu lieu le 22 mai et tombe dans le segment entre le 1er avril et le 31 mai. Par conséquent, la fonction renvoie Apr-May 2022.
Exemple 4 – Exemple d'objet graphique
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 le même ensemble de données et le même scénario inline que ceux du premier exemple. Cependant, dans cet exemple, le même ensemble de données est chargé dans l'application. Le calcul qui regroupe les transactions en segments bimestriels et renvoie les limites de segment de chaque transaction est créé sous forme de mesure dans un objet graphique de l'application.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :date.
Créez la mesure suivante :
=monthsname(2,date)
Tableau des résultats
date
=monthsname(2,date)
2/19/2022
Jan-Feb 2022
3/7/2022
Mar-Apr 2022
3/30/2022
Mar-Apr 2022
4/5/2022
Mar-Apr 2022
4/16/2022
Mar-Apr 2022
5/1/2022
May-Jun 2022
5/7/2022
May-Jun 2022
5/22/2022
May-Jun 2022
6/15/2022
May-Jun 2022
6/26/2022
May-Jun 2022
7/9/2022
Jul-Aug 2022
7/22/2022
Jul-Aug 2022
7/23/2022
Jul-Aug 2022
7/27/2022
Jul-Aug 2022
8/2/2022
Jul-Aug 2022
8/8/2022
Jul-Aug 2022
8/19/2022
Jul-Aug 2022
9/26/2022
Sep-Oct 2022
10/14/2022
Sep-Oct 2022
10/29/2022
Sep-Oct 2022
Le champ bi_monthly_range est créé sous forme de mesure dans l'objet graphique à l'aide de la fonction monthsname(). Le premier argument fourni est 2, divisant l'année en segments bimestriels. Le deuxième argument identifie le champ en cours d'évaluation.
La transaction 8195 a lieu le 22 mai. La fonction monthsname() divise initialement l'année en segments bimestriels. La transaction 8195 tombe dans le segment entre le 1er mai et le 30 juin. Par conséquent, la fonction renvoie ces mois au format de la variable système MonthNames, ainsi que l'année, May-Jun 2022.
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 contenant des transactions pour 2022, chargé dans une table appelée Transactions.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
L'utilisateur final souhaite un objet graphique qui affiche les ventes totales en fonction d'une période de son choix. Cela est possible même lorsque cette dimension n'est pas disponible dans le modèle de données, en utilisant la fonction monthsname() comme dimension calculée modifiée dynamiquement par un contrôle d'entrée de variable.
Au début du script de chargement, une variable (vPeriod) a été créée ; elle sera liée au contrôle d'entrée de variable. Ensuite, configurez la variable comme un objet personnalisé dans la feuille.
Procédez comme suit :
Dans le panneau des ressources, cliquez sur Objets personnalisés.
Sélectionnez Qlik Dashboard bundle et créez un objet Entrée de variable.
Saisissez un titre pour l'objet graphique.
Sous Variable, sélectionnez vPeriod comme nom et définissez l'objet de sorte qu'il s'affiche sous forme de Liste déroulante.
Sous Valeurs, configurez l'objet de sorte qu'il utilise des valeurs dynamiques. Saisissez les éléments suivants :
Créez un tableau et ajoutez la dimension calculée suivante :
=monthsname($(vPeriod),date)
Ajoutez cette mesure pour calculer les ventes totales :
=sum(amount)
Définissez le Formatage des nombres des mesures sur Money (Devise). Cliquez sur Édition terminée. Vous pouvez maintenant modifier les données affichées dans le tableau en ajustant le segment de temps dans l'objet variable.
Voici ce à quoi ressemblera le tableau de résultats lorsque l'option tertial est sélectionnée :
Tableau de résultats
monthsname($(vPeriod),date)
=sum(amount)
Jan-Apr 2022
253.89
Mai-Août 2022
713.58
Sep-Dec 2022
248.12
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 !