yeartodate - fonction de script et fonction de graphique
Cette fonction permet de déterminer si l'horodatage tombe dans l'année de la date à laquelle le script a été chargé pour la dernière fois et renvoie True si c'est le cas ou False si ce n'est pas le cas.
Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.
Si aucun des paramètres facultatifs n'est utilisé, l'année en cours correspond à toute date comprise dans une année calendaire, qui s'étend du 1er janvier à la date de la dernière exécution du script comprise.
En d'autres termes, la fonction yeartodate(), lorsqu'elle est déclenchée sans aucun paramètre supplémentaire, est utilisée pour évaluer un horodatage et renvoyer un résultat booléen selon que la date est tombée pendant l'année civile jusqu'à la date d'actualisation incluse.
Cependant, il est également possible de remplacer la date de début de l'année via l'argument firstmonth, ainsi que d'effectuer des comparaisons avec des années précédentes ou suivantes via l'argument yearoffset.
Pour finir, dans les cas d'ensembles de données historiques, la fonction yeartodate() fournit un paramètre pour définir todaydate, qui, à la place, comparera l'horodatage à l'année civile jusqu'à la date incluse fournie dans l'argument todaydate.
Arguments
Argument
Description
timestamp
Horodatage à évaluer, par exemple '10/12/2012'.
yearoffset
En spécifiant une valeur pour yearoffset, yeartodate renvoie True pour la même période d'une autre année. Un décalage yearoffset négatif indique une année antérieure tandis qu'un décalage positif indique une année ultérieure. La valeur year-to-date la plus récente est obtenue en spécifiant yearoffset = -1. Si cette valeur est omise, 0 est défini par défaut.
firstmonth
Si on spécifie un argument firstmonth compris entre 1 et 12 (1 si l'argument est omis), il est possible de déplacer le début de l'année au premier jour de n'importe quel mois. Par exemple, si vous souhaitez travailler avec un exercice financier commençant le 1er mai, spécifiez firstmonth = 5. Une valeur 1 indiquerait un exercice financier commençant le 1er janvier et une valeur 12 un exercice financier commençant le 1er décembre.
todaydate
Vous pouvez déplacer le jour utilisé comme limite supérieure de la période en indiquant une date todaydate (horodatage de la dernière exécution du script si l'argument est omis).
Cas d'utilisation
La fonction yeartodate() renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression if. Cela renverrait une agrégation ou un calcul suivant que la date évaluée s'est produite ou non au cours de l'année jusqu'à la date, incluse, du dernier chargement de l'application.
Par exemple, la fonction YearToDate() peut être utilisée pour identifier l'ensemble des équipements fabriqués jusqu'à présent au cours de l'année en cours.
Dans les exemples suivants, nous supposons que la date du dernier chargement = 11/18/2011.
Exemples de fonction
Exemple
Résultat
yeartodate( '11/18/2010')
renvoie False
yeartodate( '02/01/2011')
renvoie True
yeartodate( '11/18/2011')
renvoie True
yeartodate( '11/19/2011')
renvoie False
yeartodate( '11/19/2011', 0, 1, '12/31/2011')
renvoie True
yeartodate( '11/18/2010', -1)
renvoie True
yeartodate( '11/18/2011', -1)
renvoie False
yeartodate( '04/30/2011', 0, 5)
renvoie False
yeartodate( '05/01/2011', 0, 5)
renvoie True
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.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
year_to_date
Tableau de résultats
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
Le champ year_to_date est créé dans l'instruction preceding load via la fonction yeartodate() et en transmettant le champ date comme argument de la fonction.
Étant donné qu'aucun autre paramètre n'est transmis à la fonction, la fonction yeartodate() commence par identifier la date de chargement et par conséquent les limites de l'année civile en cours (commençant le 1er janvier) qui renverront un résultat booléen TRUE.
Par conséquent, toute transaction effectuée entre le 1er janvier et le 26 avril, la date d'actualisation renverra un résultat booléen TRUE. Toute transaction qui a lieu avant le début de l'année 2022 renverra un résultat booléen FALSE.
Exemple 2 – yearoffset
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, two_years_prior, qui détermine les transactions qui ont eu lieu deux années complètes avant l'année civile jusqu'à ce jour.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
two_years_prior
Tableau de résultats
date
two_years_prior
01/10/2020
-1
02/28/2020
-1
04/09/2020
-1
04/16/2020
-1
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
0
02/26/2022
0
03/07/2022
0
03/11/2022
0
Avec l'utilisation de la valeur -2 comme argument yearoffset dans la fonction yeartodate(), la fonction décale les limites du segment d'année civile de comparaison de deux années complètes. Initialement, le segment d'année est compris entre le 1er janvier et le 26 avril 2022. L'argument yearoffset décale ensuite ce segment de deux années en arrière. Les limites de date deviennent alors du 1er janvier au 26 avril 2020.
Par conséquent, toute transaction effectuée entre le 1er janvier et le 26 avril 2020 renverra un résultat booléen TRUE. Toute transaction qui apparaît avant ou après ce segment renverra FALSE.
Exemple 3 – firstmonth
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, year_to_date, qui détermine les transactions qui ont eu lieu au cours de l'année civile jusqu'à la date du dernier chargement.
Dans cet exemple, nous déterminons le début de l'exercice fiscal au 1er juillet.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
year_to_date
Tableau de résultats
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
-1
12/27/2021
-1
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
Dans ce cas, étant donné que l'argument firstmonth égal à 7 est utilisé dans la fonction yeartodate(), le premier jour de l'année est défini sur le 1er juillet et le dernier jour de l'année sur le 30 juin.
Par conséquent, toute transaction effectuée entre le 1er juillet 2021 et le 26 avril 2022, la date d'actualisation, renverra un résultat booléen TRUE. Toute transaction qui a lieu avant le 1er juillet 2021 renverra un résultat booléen FALSE.
Exemple 4 – todaydate
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, year_to_date, qui détermine les transactions qui ont eu lieu au cours de l'année civile jusqu'à la date du dernier chargement.
Cependant, dans cet exemple, nous devons identifier toutes les transactions qui ont eu lieu au cours de l'année civile jusqu'à la date incluse du 1er mars 2022.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
year_to_date
Tableau de résultats
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
0
03/11/2022
0
Dans ce cas, étant donné que l'argument todaydate de 03/01/2022 est utilisé dans la fonction yeartodate(), il détermine la limite de fin du segment d'année civile de comparaison au 1er mars 2022. Il est essentiel de fournir le paramètre firstmonth (compris entre 1 et 12) ; sinon, la fonction renverra des résultats nuls.
Par conséquent, toute transaction effectuée entre le 1er janvier 2022 et le 1er mars 2022, le paramètre todaydate, renverra un résultat booléen TRUE. Toute transaction qui a lieu avant le 1er janvier 2022 ou après le 1er mars 2022 renverra un résultat booléen FALSE.
Exemple 5 – exemple 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 détermine les transactions qui ont eu lieu au cours de l'année civile jusqu'à la date du dernier chargement 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.
Ajoutez la mesure suivante :
=yeartodate(date)
Tableau de résultats
date
=yeartodate(date)
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
La mesure year_to_date est créée dans l'objet graphique via la fonction yeartodate() et en transmettant le champ date comme argument de la fonction.
Étant donné qu'aucun autre paramètre n'est transmis à la fonction, la fonction yeartodate() commence par identifier la date de chargement et par conséquent les limites de l'année civile en cours (commençant le 1er janvier) qui renverront un résultat booléen TRUE.
Toute transaction effectuée entre le 1er janvier et le 26 avril, la date d'actualisation, renverra un résultat booléen TRUE. Toute transaction qui a lieu avant le début de l'année 2022 renverra un résultat booléen FALSE.
Exemple 6 – 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 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).
L'utilisateur final souhaite un objet Indicateur KPI présentant les ventes totales, pour la période équivalente en 2021, sous la forme d'une analyse Même période d'une année à l'autre, à la date du dernier chargement.
Pour calculer les ventes totales, créez la mesure d'agrégation suivante :
=sum(if(yeartodate(date,-1),amount,0))
Définissez le Formatage des nombres de la mesure sur Devise.
La fonction yeartodate() renvoie une valeur booléenne lors de l'évaluation des dates de chaque ID de transaction. Étant donné que le chargement a eu lieu le 16 juin 2022, la fonction yeartodate segmente la période year du 01/01/2022 au 06/16/2022. Cependant, étant donné qu'une valeur period_no égale à -1 a été utilisée dans la fonction, ces limites sont décalées à l'année précédente. Par conséquent, pour toute transaction qui se produit entre le 01/01/2021 et le 06/16/2021, la fonction yeartodate() renvoie une valeur booléenne TRUE et additionne le montant.
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 !