Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Objectif
Je cherche à détermer la charge d'un portefeuille de projets.
Les données
Je dispose des champs :
Cas par l'exemple
Composant | EstimMacro | EstimWBS | v_affectorig | Statut |
---|---|---|---|---|
A | 50 | 150 | Automne 2013 | Ouvert |
A | 40 | 40 | Vide | Retenue |
A | 100 | 150 | Automne 2013 | Retenue |
B | 100 | 150 | Vide | en cours |
B | 70 | 100 | Automne 2013 | Ouvert |
C | 80 | 80 | Vide | Differée |
Note:
Si un temps existe dans l'EstimWBS, je prends ce temps.
Vide est une valeur qui vaut vide
Pour déterminer la charge d'automne 2013 :
Expr1 : Somme(Estim) = 150+40+150+150+100+80 = 670
Expr2 : Somme Estim (v_affect = vide) = 40+150 = 190
Ratio = 190 / 670 soit 28,35%
Pour déterminer la charge par composant sur la roadmap 2013
Exemple sur projet A
Somme(Estim-A) = 150+150+40 = 340
Somme Estim-A(v_affect = vide) = 40
Ratio = 40 / 340 soit 11%
Dans QliKView pour réaliser un graphique présentant le ration compket (et par composant), j'ai ecrit ceci :
Exp1 : = sum ( {<Statut = {'*'} - {'Abandonnée'} > } if (EstimWBS > 0, EstimWBS, EstimMacro))
Expr2 : = sum ( { 1 <V_Affectorig = {Vide}, Statut = {'*'} - {'Abandonnée'}> } if (EstimWBS > 0, EstimWBS, EstimMacro))
Ratio : Expr1 / Expr2
Mon problème :
Pour déterminer Expr1, le champ v_affectorig doit contenir toute les valeurs possibles
Pour déterminer Expr2, le champ v_affectorig doit avoir la valeur 'Automne 2013' de sélectionnée
Même problématique en y incluant les composants pour la déterminer de la charge par composant.
Y a t'il une solution et si oui avz vous une idée.
Merci
Excellente idée de conserver le dynamisme en passant par une variable.
Pour la syntaxe, ceci devrait mieux fonctionner, en partant du principe que la variable RoadMap prend des valeurs du style 'Automne 2013' :
sum ( {<Statut = {'*'} - {'Abandonnée'}, v_affectorig = {'$(RoadMap)'}> } if (EstimWBS> 0,EstimWBS , EstimMacro))
Amand
Bonjour,
La sélection sur les valeurs nulles est une problématique récurrente sur QlikView. Pour la contourner, on peut flaguer les valeurs nulles.
Par exemple, ajouter un champs identifiant les valeurs nulles dans le script :
Load …
if(len(trim(v_affectorig )) = 0, 'O', 'N') as Flag_valeur_nulle
From …;
En se basant sur ce nouveau champ, on obtiendrai :
Expr 1 :
sum ( {<Statut = {'*'} - {'Abandonnée'}, Flag_valeur_nulle = {'*'}>} if (EstimWBS> 0, EstimWBS , EstimMacro))
Expr 2 :
sum ( {<Statut = {'*'} - {'Abandonnée'}, v_affectorig = {'Automne 2013'}, Flag_valeur_nulle = {'O'} > } if (EstimWBS> 0, EstimWBS , EstimMacro))
A ta dispo,
Amand
Je n'ai pas de problème sur les valeurs nulles puisque ma requete met la valeur 'Vide' si le champ a une valeur nulle.
Donc logiquement, ça simplifie le problème :
Expr 1 :
sum ( {<Statut = {'*'} - {'Abandonnée'}, v_affectorig = {'*'}>} if (EstimWBS> 0, EstimWBS , EstimMacro))
Expr 2 :
sum ( {<Statut = {'*'} - {'Abandonnée'}, v_affectorig = {'Automne 2013'} > } if (EstimWBS> 0,EstimWBS , EstimMacro))
Il y a peut-être quelque chose que je n'ai pas saisi dans la demande. Ne pas hésiter à laisser un qvw d'exemple.
Amand
C'est ce que je me suis résolu à faire. Mais je voulais garder le côté dynamique en ayant la possibilité de choisir directemant par le champ v_affectorig ou un objet de type liste de sélection et visualiser sur d'autres périodes.
J'ai essayer de passer par un champ type zone de saisie, (mettre les valeurs dans la zone valeurs listées) et faire appel à cette variable nommée roadma) dans la formule.
La syntaxe devenant pour la dernière formule :
sum ( {<Statut = {'*'} - {'Abandonnée'}, v_affectorig = $(RoadMap) > } if (EstimWBS> 0,EstimWBS , EstimMacro)
Sauf erreur dans la formule, lorsque je change la valeur dans la liste, le graphique ne se met pas à jour.
Il me semble qu'il y ai une opération à faire mais je n'ai pas retrouvé laquelle.
Excellente idée de conserver le dynamisme en passant par une variable.
Pour la syntaxe, ceci devrait mieux fonctionner, en partant du principe que la variable RoadMap prend des valeurs du style 'Automne 2013' :
sum ( {<Statut = {'*'} - {'Abandonnée'}, v_affectorig = {'$(RoadMap)'}> } if (EstimWBS> 0,EstimWBS , EstimMacro))
Amand
C'est super. Ca fonctionne ... avec la bonne syntaxe ...
Ce qui m'a mis dans l'erreur c'est que la variable n'avait pas la colorisation et sa forme syntaxique habituelle (italique gris clair) et je n'ai pas validé le calcul.
Je le saurai pour l'avenir.
Je valide comme bonne réponse
Merci à vous.