monthsstart - fonction de script et fonction de graphique
Cette fonction renvoie une valeur correspondant à l'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. Il est également possible de rechercher l'horodatage d'une période passée ou future.Le format de sortie par défaut correspond au format de date DateFormat défini dans le script.
La fonction monthsstart() divise l'année en segments en fonction de l'argument n_months fourni. Elle évalue ensuite le segment dans lequel tombe chaque date fournie et renvoie la première milliseconde de ce segment, au format date. La fonction permet également de renvoyer l'horodatage de début à 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 monthsstart() est couramment utilisée dans le cadre d'une expression lorsque l'utilisateur souhaite que le calcul utilise la fraction d'une période qui n'a pas encore eu lieu. Cela peut être utilisé, par exemple, pour fournir une variable d'entrée permettant à l'utilisateur de calculer le total des intérêts accumulés jusqu'ici au cours du mois, du trimestre ou du semestre.
Exemples de fonction
Exemple
Résultat
monthsstart(4, '10/19/2013')
Renvoie 09/01/2013.
monthsstart(4, '10/19/2013, -1)
Renvoie 05/01/2013.
monthsstart(4, '10/19/2013', 0, 2
)
Renvoie 10/01/2013, car le début de l'année devient le mois 2.
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_start, qui regroupe les transactions en segments bimestriels et renvoie l'horodatage de début du 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_start
bi_monthly_start_timestamp
Tableau de résultats
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
01/01/2022
1/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
Le champ bi_monthly_start est créé dans l'instruction preceding load à l'aide de la fonction monthsstart(). 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 monthsstart() 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 la première milliseconde de ce segment, à savoir, le 1er mai 2022 à 12:00:00 AM.
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 que ceux du premier exemple.
Création d'un champ, prev_bi_monthly_start, qui renvoie la première millisecondes du segment bimestriel avant la réalisation de la transaction.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
Tableau de résultats
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
2/19/2022
11/01/2021
11/1/2021 12:00:00 AM
3/7/2022
01/01/2022
1/1/2022 12:00:00 AM
3/30/2022
01/01/2022
1/1/2022 12:00:00 AM
4/5/2022
01/01/2022
1/1/2022 12:00:00 AM
4/16/2022
01/01/2022
1/1/2022 12:00:00 AM
5/1/2022
03/01/2022
3/1/2022 12:00:00 AM
5/7/2022
03/01/2022
3/1/2022 12:00:00 AM
5/22/2022
03/01/2022
3/1/2022 12:00:00 AM
6/15/2022
03/01/2022
3/1/2022 12:00:00 AM
6/26/2022
03/01/2022
3/1/2022 12:00:00 AM
7/9/2022
05/01/2022
5/1/2022 12:00:00 AM
7/22/2022
05/01/2022
5/1/2022 12:00:00 AM
7/23/2022
05/01/2022
5/1/2022 12:00:00 AM
7/27/2022
05/01/2022
5/1/2022 12:00:00 AM
8/2/2022
05/01/2022
5/1/2022 12:00:00 AM
8/8/2022
05/01/2022
5/1/2022 12:00:00 AM
8/19/2022
05/01/2022
5/1/2022 12:00:00 AM
9/26/2022
07/01/2022
7/1/2022 12:00:00 AM
10/14/2022
07/01/2022
7/1/2022 12:00:00 AM
10/29/2022
07/01/2022
7/1/2022 12:00:00 AM
Si on utilise -1 comme argument period_no dans la fonction monthsstart(), après avoir initialement divisé une année en segments bimestriels, la fonction renvoie la première milliseconde du segment bimestriel précédent avant la transaction.
La transaction 8195 a lieu dans le segment entre mai et juin. Par conséquent, le segment bimestriel précédent était compris entre le 1er mars et le 30 avril, et la fonction renvoie la première milliseconde de ce segment, à savoir, le 1er mars 2022 à 12:00:00 AM.
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 que ceux du premier exemple.
Création d'un champ, bi_monthly_start, qui regroupe les transactions en segments bimestriels et renvoie l'horodatage de début du segment défini pour 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_start
bi_monthly_start_timestamp
Tableau de résultats
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
02/01/2022
2/1/2022 12:00:00 AM
3/7/2022
02/01/2022
2/1/2022 12:00:00 AM
3/30/2022
02/01/2022
2/1/2022 12:00:00 AM
4/5/2022
04/01/2022
4/1/2022 12:00:00 AM
4/16/2022
04/01/2022
4/1/2022 12:00:00 AM
5/1/2022
04/01/2022
4/1/2022 12:00:00 AM
5/7/2022
04/01/2022
4/1/2022 12:00:00 AM
5/22/2022
04/01/2022
4/1/2022 12:00:00 AM
6/15/2022
06/01/2022
6/1/2022 12:00:00 AM
6/26/2022
06/01/2022
6/1/2022 12:00:00 AM
7/9/2022
06/01/2022
6/1/2022 12:00:00 AM
7/22/2022
06/01/2022
6/1/2022 12:00:00 AM
7/23/2022
06/01/2022
6/1/2022 12:00:00 AM
7/27/2022
06/01/2022
6/1/2022 12:00:00 AM
8/2/2022
08/01/2022
8/1/2022 12:00:00 AM
8/8/2022
08/01/2022
8/1/2022 12:00:00 AM
8/19/2022
08/01/2022
8/1/2022 12:00:00 AM
9/26/2022
08/01/2022
8/1/2022 12:00:00 AM
10/14/2022
10/01/2022
10/1/2022 12:00:00 AM
10/29/2022
10/01/2022
10/1/2022 12:00:00 AM
Si on utilise 4 comme argument first_month_of_year dans la fonction monthsstart(), 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.
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 la première milliseconde de ce segment, à savoir, le 1er avril 2022 à 12:00:00 AM.
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 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 l'horodatage de début du segment défini 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 les mesures suivantes :
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
Ces calculs récupéreront l'horodatage de début du segment bimestriel de la transaction.
Tableau de résultats
date
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
2/19/2022
01/01/2022
1/1/2021 12:00:00 AM
La transaction 8195 a eu lieu le 22 mai. La fonction monthsstart() 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 la première milliseconde de ce segment, à savoir, 05/01/2022 12:00:00 AM.
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 un ensemble de soldes de prêts, chargé dans une table appelée Loans.
Données constituées des ID des prêts, du solde au début du mois et du taux d'intérêt simple facturé pour chaque prêt par an.
L'utilisateur final souhaite un objet graphique qui affiche, par ID de prêt, les intérêts actuels qui ont été accumulés pour chaque prêt pour la période de son choix. L'exercice financier commence en janvier.
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 : ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'
Ensuite, créez le tableau de résultats.
Procédez comme suit :
Créez un tableau. Ajoutez les champs suivants comme dimensions.
employee_id
employee_name
Pour calculer les intérêts accumulés, créez une mesure :
Définissez le Formatage des nombres des mesures sur 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 de période month est sélectionnée :
La fonction monthsstart(), si on utilise l'entrée de l'utilisateur comme premier argument et la date d'aujourd'hui comme deuxième argument, renvoie la date de début de la période sélectionnée par l'utilisateur. En soustrayant ce résultat de la date actuelle, l'expression renvoie le nombre de jours qui se sont écoulés jusqu'à présent au cours de cette période.
Cette valeur est ensuite multipliée par le taux d'intérêt et divisée par 365 pour obtenir le taux d'intérêt effectif encouru pour cette période. Le résultat est ensuite multiplié par le solde initial du prêt pour renvoyer les intérêts cumulés jusqu'à présent au cours de cette période.
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 !