yearend - fonction de script et fonction de graphique
Cette fonction renvoie une valeur correspondant à un horodatage de la dernière milliseconde du dernier 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 yearend() détermine l'année dans laquelle tombe la date. Elle renvoie ensuite un horodatage, au format date, pour la dernière milliseconde de l'année en question. Le premier mois de l'année est, par défaut, janvier. Cependant, vous pouvez modifier le mois défini comme le premier en utilisant l'argument first_month_of_year dans la fonction yearend().
Note Informations La fonction yearend() ne tient pas compte de la variable système FirstMonthOfYear. L'année commence le 1er janvier, sauf si l'argument first_month_of_year est utilisé pour modifier cela.
Cas d'utilisation
La fonction yearend() est utilisée dans le cadre d'une expression lorsque vous souhaitez que le calcul utilise la fraction de l'année qui n'a pas encore eu lieu. Par exemple, si vous souhaitez calculer le total des intérêts non encore encourus au cours de l'année.
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.
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
yearend('10/19/2001')
Renvoie 12/31/2001 23:59:59.
yearend('10/19/2001', -1)
Renvoie 12/31/2000 23:59:59.
yearend('10/19/2001', 0, 4)
Renvoie 03/31/2002 23:59:59.
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 :
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 yearend() définie comme le champ year_end.
La fonction Timestamp() définie comme le champ year_end_timestamp.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
year_end
year_end_timestamp
Tableau de résultats
id
date
year_end
year_end_timestamp
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
Le champ 'year_end' est créé dans l'instruction preceding load via la fonction yearend() et en transmettant le champ date comme argument de la fonction.
La fonction yearend() identifie initialement l'année dans laquelle tombe la valeur date et renvoie un horodatage pour la dernière milliseconde de cette année.
La transaction 8199 a eu lieu le 23 avril 2021. La fonction yearend() renvoie la dernière milliseconde de cette année, soit le 31 décembre à 11:59:59 PM.
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_end', qui renvoie l'horodatage de la date de fin de l'année précédant l'année de la transaction.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
date
previous_year_end
previous_ year_end_timestamp
Tableau de résultats
id
date
previous_year_end
previous_year_end_timestamp
8188
01/13/2020
12/31/2019
12/31/2019 11:59:59 PM
8189
02/26/2020
12/31/2019
12/31/2019 11:59:59 PM
8190
03/27/2020
12/31/2019
12/31/2019 11:59:59 PM
8191
04/16/2020
12/31/2019
12/31/2019 11:59:59 PM
8192
05/21/2020
12/31/2019
12/31/2019 11:59:59 PM
8193
08/14/2020
12/31/2019
12/31/2019 11:59:59 PM
8194
10/07/2020
12/31/2019
12/31/2019 11:59:59 PM
8195
12/05/2020
12/31/2019
12/31/2019 11:59:59 PM
8196
01/22/2021
12/31/2020
12/31/2020 11:59:59 PM
8197
02/03/2021
12/31/2020
12/31/2020 11:59:59 PM
8198
03/17/2021
12/31/2020
12/31/2020 11:59:59 PM
8199
04/23/2021
12/31/2020
12/31/2020 11:59:59 PM
8200
05/04/2021
12/31/2020
12/31/2020 11:59:59 PM
8201
06/30/2021
12/31/2020
12/31/2020 11:59:59 PM
8202
07/26/2021
12/31/2020
12/31/2020 11:59:59 PM
8203
12/27/2021
12/31/2020
12/31/2020 11:59:59 PM
8204
06/06/2022
12/31/2021
12/31/2021 11:59:59 PM
8205
07/18/2022
12/31/2021
12/31/2021 11:59:59 PM
8206
11/14/2022
12/31/2021
12/31/2021 11:59:59 PM
8207
12/12/2022
12/31/2021
12/31/2021 11:59:59 PM
Étant donné qu'une valeur period_no de -1 a été utilisée comme argument de décalage dans la fonction yearend(), la fonction commence par identifier l'année au cours de laquelle les transactions ont lieu. Elle regarde ensuite une année avant et identifie la dernière milliseconde de cette année.
La transaction 8199 a lieu le 23 avril 2021. La fonction yearend() renvoie la dernière milliseconde de l'année précédente, soit le 31 décembre 2020 à 11:59:59 PM, pour le champ 'previous_year_end'.
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_end
year_end_timestamp
Tableau de résultats
id
date
year_end
year_end_timestamp
8188
01/13/2020
03/31/2020
3/31/2020 11:59:59 PM
8189
02/26/2020
03/31/2020
3/31/2020 11:59:59 PM
8190
03/27/2020
03/31/2020
3/31/2020 11:59:59 PM
8191
04/16/2020
03/31/2021
3/31/2021 11:59:59 PM
8192
05/21/2020
03/31/2021
3/31/2021 11:59:59 PM
8193
08/14/2020
03/31/2021
3/31/2021 11:59:59 PM
8194
10/07/2020
03/31/2021
3/31/2021 11:59:59 PM
8195
12/05/2020
03/31/2021
3/31/2021 11:59:59 PM
8196
01/22/2021
03/31/2021
3/31/2021 11:59:59 PM
8197
02/03/2021
03/31/2021
3/31/2021 11:59:59 PM
8198
03/17/2021
03/31/2021
3/31/2021 11:59:59 PM
8199
04/23/2021
03/31/2022
3/31/2022 11:59:59 PM
8200
05/04/2021
03/31/2022
3/31/2022 11:59:59 PM
8201
06/30/2021
03/31/2022
3/31/2022 11:59:59 PM
8202
07/26/2021
03/31/2022
3/31/2022 11:59:59 PM
8203
12/27/2021
03/31/2022
3/31/2022 11:59:59 PM
8204
06/06/2022
03/31/2023
3/31/2023 11:59:59 PM
8205
07/18/2022
03/31/2023
3/31/2023 11:59:59 PM
8206
11/14/2022
03/31/2023
3/31/2023 11:59:59 PM
8207
12/12/2022
03/31/2023
3/31/2023 11:59:59 PM
Étant donné que l'argument first_month_of_year égal à 4 est utilisé dans la fonction yearend(), 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 lieu le 23 avril 2021. Étant donné que la fonction yearend() définit le début de l'année sur le 1er avril, elle renvoie le 31 mars 2022 comme valeur 'year_end' 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 fin de l'année 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 :
=yearend(date)
=timestamp(yearend(date))
Tableau de résultats
id
date
=yearend(date)
=timestamp(yearend(date))
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
La mesure 'end_of_year' est créée dans l'objet graphique via la fonction yearend() et en transmettant le champ date comme argument de la fonction.
La fonction yearend() identifie initialement l'année dans laquelle tombe la valeur date en renvoyant un horodatage pour la dernière milliseconde de cette année.
La transaction 8199 a lieu le 23 avril 2021. La fonction yearend() renvoie la dernière milliseconde de cette année, soit le 31 décembre à 11:59:59 PM.
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 'Employee_Expenses'. La table contient les champs suivants :
ID des employés
Nom de l'employé
Notes de frais quotidiennes moyennes de chaque employé
L'utilisateur final souhaite un objet graphique qui affiche, par ID d'employé et nom d'employé, les notes de frais estimées qu'il reste à encourir pour le reste de l'année. L'exercice financier commence en janvier.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
employee_id
employee_name
Pour calculer les notes de frais projetées, créez la mesure suivante :
=(yearend(today(1))-today(1))*avg_daily_claim
Définissez le Formatage des nombres des mesures sur Money (Devise).
Tableau de résultats
employee_id
employee_name
=(yearend(today(1))-today(1))*avg_daily_claim
182
Mark
$3240.00
183
Deryck
$2700.00
184
Dexter
$2700.00
185
Sydney
$5832.00
186
Agatha
$3888.00
Si on utilise la date d'aujourd'hui comme seul argument, la fonction yearend() renvoie la date de fin de l'année en cours. Ensuite, si on soustraie la date d'aujourd'hui de la date de fin d'année, l'expression renvoie le nombre de jours restants pour cette année.
Cette valeur est ensuite multipliée par les notes de frais quotidiennes moyennes par employé pour calculer la valeur estimée des notes de frais que chaque employé est censé faire au cours de l'année restante.
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 !