Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Simna00
Contributor
Contributor

Qlik Sense Calcul d'un stock mensuel

Bonjour à tous.

Je charge tous les mois un fichier excel de type "Stock_Fevrier.qvd" dans mon application QlikSense de ce type:

Numéro StockDate
Stock 101/01/2020
Stock 202/01/2020
Stock 303/01/2020
Stock 401/02/2020
Stock 502/02/2020
Stock 603/02/2020
Stock 704/02/2020
Stock 805/02/2020

*Chargement de février

Numéro StockDate
Stock 101/01/2020
Stock 202/01/2020
Stock 301/02/2020
Stock 402/02/2020
Stock 503/02/2020
Stock 604/02/2020
Stock 701/03/2020
Stock 802/03/2020
Stock 903/03/2020
Stock 1004/03/2020

*Chargement de Mars

Lorsque je charge mon application, j'ai créé  une fonction Month() et Year() pour effectuer un graphique présentant une évolution mensuelle:

LOAD
"Numéro Stock",
"Date",
Month("Date") as Mois,
Year("Date") as Année
FROM [lib://AttachedFiles/Stock_*.xlsx]
(ooxml, embedded labels, table is Feuil1);

Voici le graphique que j'obtiens avec le chargement des deux fichiers (Dimension = 'Mois' et Mesure='Count("Numéro Stock"):

Capture.PNG

Mon problème est que je voudrais pour Février afficher le nombre de produit que j'ai en stock au chargement de Février (donc 8 ) et en Mars le nombre de produit en stock obtenu grâce au chargement de Mars (donc 10).

*Le nombre en stock est faussé car la dimension Mois fait très bien son travail et récupère toutes les données ayant une date compris en janvier et ainsi de suite pour Février et Mars ...

J'aimerais que mon graphique ressemble à ça :

 

 

Capture.PNG

J'espère avoir été assez clair pour vous.

Merci d'avance pour votre aide.

 
 

 

1 Solution

Accepted Solutions
Taoufiq_Zarra

Bonjour,

une proposition en PJ.

1-

J'imagine que tu disposes d'un dossier avec l'ensemble des fichiers QVDs,

essaye que les noms du fichier, c-àd les mois ont la même écriture que la variable:

SET LongMonthNames='janvier;février;mars;avril;mai;juin;juillet;août;septembre;octobre;novembre;décembre';

sinon il faut ajouter un mapping

2-

au moment de chargement du fichier qvd on va récupérer le mois, je ne sais pas si c'est la même année donc j'ai supposé que c'est l'année du champs Date

3-

donc le script de chargement devient :

FOR EACH file in filelist('lib://Qvd/Stock_*.qvd') ;

Data:

load *,
Month(Date#(tmp&'/'&Année,'MMMM/YYYY')) as New_Month;
LOAD
"Numéro Stock",
TextBetween('$(file)','_','.') as tmp,
"Date",
Month("Date") as Mois,
Year("Date") as Année
FROM '$(file)'

(qvd);

NEXT file 

drop Fields tmp;

 

4-

Résultats avec le nouveau champ :

Capture.PNG

 

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

3 Replies
Taoufiq_Zarra

Bonjour,

une proposition en PJ.

1-

J'imagine que tu disposes d'un dossier avec l'ensemble des fichiers QVDs,

essaye que les noms du fichier, c-àd les mois ont la même écriture que la variable:

SET LongMonthNames='janvier;février;mars;avril;mai;juin;juillet;août;septembre;octobre;novembre;décembre';

sinon il faut ajouter un mapping

2-

au moment de chargement du fichier qvd on va récupérer le mois, je ne sais pas si c'est la même année donc j'ai supposé que c'est l'année du champs Date

3-

donc le script de chargement devient :

FOR EACH file in filelist('lib://Qvd/Stock_*.qvd') ;

Data:

load *,
Month(Date#(tmp&'/'&Année,'MMMM/YYYY')) as New_Month;
LOAD
"Numéro Stock",
TextBetween('$(file)','_','.') as tmp,
"Date",
Month("Date") as Mois,
Year("Date") as Année
FROM '$(file)'

(qvd);

NEXT file 

drop Fields tmp;

 

4-

Résultats avec le nouveau champ :

Capture.PNG

 

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
Simna00
Contributor
Contributor
Author

Bonjour,

Merci beaucoup Taoufiq, je vais tester tout ça

ddocquoy
Contributor II
Contributor II

Bonjour,

Il y a plus simple, si on mets FileName() dans le script de chargement, on va recuperer le nom du fichier.

Il suffira ensuite de faire un petit truc à base de Mid pour avoir le nom du mois.