yearstart - fonction de script et fonction de graphique
Cette fonction renvoie un horodatage correspondant au début du premier jour de l'année contenant l'argument date. Le format de sortie par défaut correspond à l'argument DateFormat défini dans le script.
En d'autres termes, la fonction yearstart() détermine l'année dans laquelle tombe la date. Elle renvoie ensuite un horodatage, au format date, pour la première milliseconde de cette année. Le premier mois de l'année est, par défaut, le mois de janvier ; cependant, vous pouvez modifier le mois défini comme le premier en utilisant l'argument first_month_of_year dans la fonction yearstart().
Cas d'utilisation
La fonction yearstart() est utilisée dans le cadre d'une expression lorsque vous souhaitez que le calcul utilise la fraction de l'année qui s'est écoulée jusqu'ici. Par exemple, si vous souhaitez calculer les intérêts accumulés au cours d'une année jusqu'à ce jour.
double
Arguments
Argument
Description
date
Date ou horodatage à évaluer.
period_no
period_no est un entier, où la valeur 0 indique l'année comprenant l'argument date. Les valeurs négatives de l'argument period_no indiquent les années passés tandis que les valeurs positives désignent les années à 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.
Les mois suivants peuvent être utilisés dans l'first_month_of_year argument :
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
yearstart('10/19/2001')
Renvoie 01/01/2001 00:00:00.
yearstart('10/19/2001',-1)
Renvoie 01/01/2000 00:00:00.
yearstart('10/19/2001',0,4)
Renvoie 04/01/2001 00:00:00.
Exemple 1 – exemple de base
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 transactions entre 2020 et 2022, chargé dans une table appelée 'Transactions'.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
Instruction preceding load contenant les éléments suivants :
La fonction yearstart() définie comme le champ year_start.
La fonction Timestamp() définie comme le champ year_start_timestamp
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
year_start
year_start_timestamp
Tableau de résultats
id
date
year_start
year_start_timestamp
8188
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8189
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8190
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8191
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8192
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8193
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8194
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8195
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
8196
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8201
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8202
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8203
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8204
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8205
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8206
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8207
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
Le champ 'year_start' est créé dans l'instruction preceding load via la fonction yearstart() et en transmettant le champ date comme argument de la fonction.
La fonction yearstart() identifie initialement l'année dans laquelle tombe la valeur date et renvoie un horodatage pour la première milliseconde de cette année-là.
La transaction 8199 a eu lieu le 23 avril 2021. La fonction yearstart() renvoie la première milliseconde de cette année-là, soit le 1er janvier à 12:00:00 AM.
Exemple 2 – period_no
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, la tâche consiste à créer un champ, 'previous_year_start', qui renvoie l'horodatage de la date de début de l'année précédant l'année où la transaction a eu lieu.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
previous_year_start
previous_ year_start_timestamp
Tableau de résultats
id
date
previous_year_start
previous_year_start_timestamp
8188
01/13/2020
01/01/2019
1/1/2019 12:00:00 AM
8189
02/26/2020
01/01/2019
1/1/2019 12:00:00 AM
8190
03/27/2020
01/01/2019
1/1/2019 12:00:00 AM
8191
04/16/2020
01/01/2019
1/1/2019 12:00:00 AM
8192
05/21/2020
01/01/2019
1/1/2019 12:00:00 AM
8193
08/14/2020
01/01/2019
1/1/2019 12:00:00 AM
8194
10/07/2020
01/01/2019
1/1/2019 12:00:00 AM
8195
12/05/2020
01/01/2019
1/1/2019 12:00:00 AM
8196
01/22/2021
01/01/2020
1/1/2020 12:00:00 AM
8197
02/03/2021
01/01/2020
1/1/2020 12:00:00 AM
8198
03/17/2021
01/01/2020
1/1/2020 12:00:00 AM
8199
04/23/2021
01/01/2020
1/1/2020 12:00:00 AM
8200
05/04/2021
01/01/2020
1/1/2020 12:00:00 AM
8201
06/30/2021
01/01/2020
1/1/2020 12:00:00 AM
8202
07/26/2021
01/01/2020
1/1/2020 12:00:00 AM
8203
12/27/2021
01/01/2020
1/1/2020 12:00:00 AM
8204
06/06/2022
01/01/2021
1/1/2021 12:00:00 AM
8205
07/18/2022
01/01/2021
1/1/2021 12:00:00 AM
8206
11/14/2022
01/01/2021
1/1/2021 12:00:00 AM
8207
12/12/2022
01/01/2021
1/1/2021 12:00:00 AM
Dans cette instance, étant donné qu'une valeur period_no de -1 est utilisée comme argument de décalage dans la fonction yearstart(), la fonction commence par identifier l'année au cours de laquelle les transactions ont lieu. Elle regarde ensuite un an avant et identifie la première milliseconde de cette année-là.
La transaction 8199 a eu lieu le 23 avril 2021. La fonction yearstart() renvoie la première milliseconde de l'année précédente, soit le 1er janvier 2020 à 12:00:00 AM, pour le champ 'previous_year_start'.
Exemple 3 – first_month_of_year
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, la politique de l'entreprise stipule que l'année commence le 1er avril.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
year_start
year_start_timestamp
Tableau de résultats
id
date
year_start
year_start_timestamp
8188
01/13/2020
04/01/2019
4/1/2019 12:00:00 AM
8189
02/26/2020
04/01/2019
4/1/2019 12:00:00 AM
8190
03/27/2020
04/01/2019
4/1/2019 12:00:00 AM
8191
04/16/2020
04/01/2020
4/1/2020 12:00:00 AM
8192
05/21/2020
04/01/2020
4/1/2020 12:00:00 AM
8193
08/14/2020
04/01/2020
4/1/2020 12:00:00 AM
8194
10/07/2020
04/01/2020
4/1/2020 12:00:00 AM
8195
12/05/2020
04/01/2020
4/1/2020 12:00:00 AM
8196
01/22/2021
04/01/2020
4/1/2020 12:00:00 AM
8197
02/03/2021
04/01/2020
4/1/2020 12:00:00 AM
8198
03/17/2021
04/01/2020
4/1/2020 12:00:00 AM
8199
04/23/2021
04/01/2021
4/1/2021 12:00:00 AM
8200
05/04/2021
04/01/2021
4/1/2021 12:00:00 AM
8201
06/30/2021
04/01/2021
4/1/2021 12:00:00 AM
8202
07/26/2021
04/01/2021
4/1/2021 12:00:00 AM
8203
12/27/2021
04/01/2021
4/1/2021 12:00:00 AM
8204
06/06/2022
04/01/2022
4/1/2022 12:00:00 AM
8205
07/18/2022
04/01/2022
4/1/2022 12:00:00 AM
8206
11/14/2022
04/01/2022
4/1/2022 12:00:00 AM
8207
12/12/2022
04/01/2022
4/1/2022 12:00:00 AM
Dans cette instance, étant donné que l'argument first_month_of_year égal à 4 est utilisé dans la fonction yearstart(), le premier jour de l'année est défini sur le 1er avril et le dernier jour de l'année sur le 31 mars.
La transaction 8199 a eu lieu le 23 avril 2021. Parce que la fonction yearstart() définit le début de l'année sur le 1er avril et le renvoie comme la valeur 'year_start' pour la transaction.
Exemple 4 – Exemple d'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 renvoie l'horodatage de date de début de l'année de réalisation d'une 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 ces champs comme dimensions :
id
date
Pour calculer l'année d'une transaction, créez les mesures suivantes :
=yearstart(date)
=timestamp(yearstart(date))
Tableau de résultats
id
date
=yearstart(date)
=timestamp(yearstart(date))
8188
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8189
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8190
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8191
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
8192
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8193
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8194
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8195
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8196
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8201
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8202
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8203
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8204
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8205
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8206
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8207
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
La mesure 'start_of_year' est créée dans l'objet graphique via la fonction yearstart() et en transmettant le champ date comme argument de la fonction.
La fonction yearstart() identifie initialement l'année dans laquelle tombe la valeur date et renvoie un horodatage pour la première milliseconde de cette année-là.
La transaction 8199 a eu lieu le 23 avril 2021. La fonction yearstart() renvoie la première milliseconde de cette année-là, soit le 1er janvier à 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 chargé dans une table appelée 'Loans'. La table contient les champs suivants :
Les ID de prêt.
Le solde en début d'année.
Le 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 au cours de l'année jusqu'à la date du jour.
Si on utilise la date d'aujourd'hui comme seul argument, la fonction yearstart() renvoie la date de début de l'année en cours. Si on soustraie ce résultat de la date actuelle, l'expression renvoie le nombre de jours qui se sont écoulés jusqu'à présent cette année.
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 pour la période. Le taux d'intérêt effectif pour la période est ensuite multiplié par le solde initial du prêt pour renvoyer les intérêts accumulés jusqu'à présent cette année.
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 !