Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous.
Je charge tous les mois un fichier excel de type "Stock_Fevrier.qvd" dans mon application QlikSense de ce type:
Numéro Stock | Date |
Stock 1 | 01/01/2020 |
Stock 2 | 02/01/2020 |
Stock 3 | 03/01/2020 |
Stock 4 | 01/02/2020 |
Stock 5 | 02/02/2020 |
Stock 6 | 03/02/2020 |
Stock 7 | 04/02/2020 |
Stock 8 | 05/02/2020 |
*Chargement de février
Numéro Stock | Date |
Stock 1 | 01/01/2020 |
Stock 2 | 02/01/2020 |
Stock 3 | 01/02/2020 |
Stock 4 | 02/02/2020 |
Stock 5 | 03/02/2020 |
Stock 6 | 04/02/2020 |
Stock 7 | 01/03/2020 |
Stock 8 | 02/03/2020 |
Stock 9 | 03/03/2020 |
Stock 10 | 04/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"):
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 :
J'espère avoir été assez clair pour vous.
Merci d'avance pour votre aide.
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 :
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 :
Bonjour,
Merci beaucoup Taoufiq, je vais tester tout ça
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.