Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour.
Première discussion en ce qui me concerne, j'espère ne pas faire d'erreur, merci par avance pour votre compréhension.
La situation :
Je dois réaliser un graphique en histogramme avec une valeur de CA que je dois cumuler. La première dimension correspond au mois de signature de l'affaire. Il y a également une dimension pour indiquer le nom du responsable en charge de l'affaire.
Autant pour le mois de janvier j'ai des valeurs pour les 2 responsables, autant pour le mois de février je n'ai des valeurs que pour l'un d'eux. Mat table QVD ne contient donc pas de ligne pour le mois de février pour le second responsable ( voir qvd joint ).
Il semble que Qlik ne soit pas capable d'analyser la valeur manquante et cumul pas la totalité sur le mois de février. Je me retrouve donc avec ce graphique :
Ma difficulté :
Comment faire en sorte que la barre du mois de février m'affiche 3150 pour Alexandre et 3000 pour Bernard ?
Merci d'avance pour votre aide car j'ai beau chercher je n'ai pas trouvé.
Pour info j'ai essayé le principe de mastercalendar que j'ai trouvé sur la communié mais malheureusement sans succès. Le code fonction mais le résultat graphique est le même.....
Salut,
Le problème vient du fait que QlikView n'affiches pas les données qui n'existe pas et ceci passe avant le cumul.
Si tu veux que ton graphe s'affiche correctement:
Il faut décocher "Supprimer les valeurs nulles":
Et ajouter dans ton script les lignes suivantes à la suite du chargement de ton qvd, pour y ajouter les combinaisons manquantes :
// Chargement de ton QVD
VENTE_EE_OPPORTUNITES:
LOAD CA_OPPORT_,
REF_DEVIS,
DATE_SIGNATURE_EE_OPPORT,
MOIS_SIGNATURE,
MANAGER_1_OPPORT_CREE_PAR,
SOUS_UNIVERS
FROM
[..\Downloads\VENTE_EE_OPPORTUNITES.qvd]
(qvd);
// Ajout du champ temporaire tmp_KEY_VENTE_EE_OPPORTUNITES qui me permettra de tester l'existance
// des combinaisons des chgamps MOIS_SIGNATURE et MANAGER_1_OPPORT_CREE_PAR
Left join(VENTE_EE_OPPORTUNITES)
LOAD
MOIS_SIGNATURE, // Clé de jointure
MANAGER_1_OPPORT_CREE_PAR, // Clé de jointure
MOIS_SIGNATURE & '_' & MANAGER_1_OPPORT_CREE_PAR as tmp_KEY_VENTE_EE_OPPORTUNITES
Resident VENTE_EE_OPPORTUNITES;
// Création de la table temporaire tmp_AllManagerByMonth qui définis toutes les combinaisons
// des champs MOIS_SIGNATURE et MANAGER_1_OPPORT_CREE_PAR
tmp_AllManagerByMonth:
LOAD Distinct
MANAGER_1_OPPORT_CREE_PAR
Resident VENTE_EE_OPPORTUNITES;
Outer Join(tmp_AllManagerByMonth)
LOAD Distinct
MOIS_SIGNATURE
Resident VENTE_EE_OPPORTUNITES;
// Ajout des combinaisons des champs MOIS_SIGNATURE et MANAGER_1_OPPORT_CREE_PAR qui n'existe pas
Concatenate(VENTE_EE_OPPORTUNITES)
LOAD *
Resident tmp_AllManagerByMonth
Where not Exists(tmp_KEY_VENTE_EE_OPPORTUNITES, MOIS_SIGNATURE & '_' & MANAGER_1_OPPORT_CREE_PAR) ;
// Suppression des tables et champs temporaires
DROP Field tmp_KEY_VENTE_EE_OPPORTUNITES;
DROP Table tmp_AllManagerByMonth;
Salut,
Le problème vient du fait que QlikView n'affiches pas les données qui n'existe pas et ceci passe avant le cumul.
Si tu veux que ton graphe s'affiche correctement:
Il faut décocher "Supprimer les valeurs nulles":
Et ajouter dans ton script les lignes suivantes à la suite du chargement de ton qvd, pour y ajouter les combinaisons manquantes :
// Chargement de ton QVD
VENTE_EE_OPPORTUNITES:
LOAD CA_OPPORT_,
REF_DEVIS,
DATE_SIGNATURE_EE_OPPORT,
MOIS_SIGNATURE,
MANAGER_1_OPPORT_CREE_PAR,
SOUS_UNIVERS
FROM
[..\Downloads\VENTE_EE_OPPORTUNITES.qvd]
(qvd);
// Ajout du champ temporaire tmp_KEY_VENTE_EE_OPPORTUNITES qui me permettra de tester l'existance
// des combinaisons des chgamps MOIS_SIGNATURE et MANAGER_1_OPPORT_CREE_PAR
Left join(VENTE_EE_OPPORTUNITES)
LOAD
MOIS_SIGNATURE, // Clé de jointure
MANAGER_1_OPPORT_CREE_PAR, // Clé de jointure
MOIS_SIGNATURE & '_' & MANAGER_1_OPPORT_CREE_PAR as tmp_KEY_VENTE_EE_OPPORTUNITES
Resident VENTE_EE_OPPORTUNITES;
// Création de la table temporaire tmp_AllManagerByMonth qui définis toutes les combinaisons
// des champs MOIS_SIGNATURE et MANAGER_1_OPPORT_CREE_PAR
tmp_AllManagerByMonth:
LOAD Distinct
MANAGER_1_OPPORT_CREE_PAR
Resident VENTE_EE_OPPORTUNITES;
Outer Join(tmp_AllManagerByMonth)
LOAD Distinct
MOIS_SIGNATURE
Resident VENTE_EE_OPPORTUNITES;
// Ajout des combinaisons des champs MOIS_SIGNATURE et MANAGER_1_OPPORT_CREE_PAR qui n'existe pas
Concatenate(VENTE_EE_OPPORTUNITES)
LOAD *
Resident tmp_AllManagerByMonth
Where not Exists(tmp_KEY_VENTE_EE_OPPORTUNITES, MOIS_SIGNATURE & '_' & MANAGER_1_OPPORT_CREE_PAR) ;
// Suppression des tables et champs temporaires
DROP Field tmp_KEY_VENTE_EE_OPPORTUNITES;
DROP Table tmp_AllManagerByMonth;
Un grand merci pour ta réponse très complète et qui semble correspondre à mon attente. Je vais tester cela très rapidement. Encore merci.
Après test réalisé ce jour en conditions réelles, cela fonctionne.
Encore une fois un grand merci.