Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
ABAZ
Contributor II
Contributor II

KPI en week to date

Bonjour,

 

Je voudrais savoir, si c'est possible d'afficher un KPI en week to date (comme le YTD) sur Qlik Sense ?

Sachant que ma semaine commence le samedis et on lundi. 

 

Mercii bcp et bonne fin de journée 

3 Replies
brunobertels
Master
Master

Bonjour 

Oui possible en utilisant la fonction weekstart et un set analysis 

Dans moin exemple je compare les ventes de la semaine en cours avec les ventes du même nombre de jour de la semaine précédente : 

 

//Semaine en cours 

sum({<[DATE_JOUR]={">=$(=Num(WeekStart( Max(DATE_JOUR) ,0,6) ) ) <=$(=Max(DATE_JOUR))"}>}

SALES)

/

// semaine précédente : 

sum({<[DATE_JOUR]={">=$(=Num(WeekStart( Max(DATE_JOUR),-1) ) ) <=$(=Max(DATE_JOUR)-7)"}>}

SALES)

 

WeekStart : 

Cette fonction renvoie une valeur correspondant à un horodatage de la première milliseconde du premier jour (lundi) de la semaine calendaire contenant l'argument date. Le format de sortie par défaut correspond au format de date DateFormat défini dans le script.

Syntax:  

WeekStart(date [, period_no[, first_week_day]])

Return data type: double

Arguments:  

Argument Description
dateDate à évaluer.
period_noshift est un entier, où la valeur 0 indique la semaine comprenant l'argument date. Les valeurs négatives spécifiées pour shift indiquent les semaines passées tandis que les valeurs positives désignent les semaines à venir.
first_week_day

Spécifie le jour où débute la semaine. S'il est omis, c'est la valeur de la variable FirstWeekDay qui est utilisée.

Les valeurs possibles pour first_week_day sont les suivantes :

  • 0 pour lundi
  • 1 pour mardi
  • 2 pour mercredi
  • etc jusque 6 


-1

ABAZ
Contributor II
Contributor II
Author

Bonjour,

 

Merci pour votre aide mais il y a une partie que je ne comprends pas la formule, c'est le premier jour de la semaine (partie en gras).

sum({<[DATE_JOUR]={">=$(=Num(WeekStart( Max(DATE_JOUR) ,0,6) ) ) <=$(=Max(DATE_JOUR))"}>}

SALES)

Est-ce que c'est bon si je remplace le  0 par un 5 (sachant mon premier jour de la semaine et le samedi) et le 6 par 4 (c'est mon dernier jour de la semaine) ?

 

Ce que j'ai fais c'est ça :

 

sum({<[FCLOSED_DATE]={">=$(=Num(WeekStart( Max(FCLOSED_DATE) ,5,4) ) ) <=$(=Max(FCLOSED_DATE))"}>}

if(match(ENTITE, 'INTERNE', 'VIPP', 'MC', 'SITEL'),(PID_GLASS_HORS_BOL+PID_GLASS_BOL)))

/

sum({<[FCLOSED_DATE]={">=$(=Num(WeekStart( Max(FCLOSED_DATE) ,5,4) ) ) <=$(=Max(FCLOSED_DATE))"}>}
if(match(ENTITE, 'INTERNE', 'VIPP', 'MC', 'SITEL')
and Match(FAMILLE,'00','11','12','13','14','20'),JOB))

J'ai l'impression que ça ne marche pas ...

 

Merci bcp 🙂

brunobertels
Master
Master

Bonjour 

Est-ce que c'est bon si je remplace le  0 par un 5 (sachant mon premier jour de la semaine et le samedi) et le 6 par 4 (c'est mon dernier jour de la semaine

Non dans la formule weekstart , la première valeur 

si 0 = la semaine de la darte considérée, Si -1 la semaine antérieure de la semaine considérée , si + 1 la semaine suivante de la semaine considérée, 

la seconde valeur indique le jour de début de semaine 0 = lundi, 1 = mardi , 2 = mercredi, 3 = jeudi, 4 = vendredi, 5 = samedi , 6 = dimanche.

PAr défaut le début de semaine est =  à  0 soit le lundi 

tu peux changer dans le script main : 

remplacer ceci 

SET FirstWeekDay=0; (début de semaine = lundi , fin = dimanche)

par ceci 

SET FirstWeekDay=5; (début de semaine = samedi , fin = vendredi)