Qlik Community

Groupe des Utilisateurs Francophones

Announcements
Submit your remarkable customer story for the Global Transformation Awards at QlikWorld Denver 2022. SUBMIT A STORY
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Calcul sur dimension

Mes meilleurs voeux à tous et félicitation quant au fonctionnment de ce forum.

Enoncé du problème:

J'admet c'est un peu tiré par les cheveux

Une base de données, des records pour y stocker entre autre les bugs et leur numéro de version.

Je fais un graphique représentant le nombre de bug par version. Formule1

=count ({<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef)

Sauf que pour une valeur spécifique de version, je dois additionner un reliquat d'une précédente gestion.

En substance,

si version = '2.1.*'

     alors je compte les bugs + ce reliquat

     sinon je compte les bugs de la version

En faisant cette formule de calcul sur un objet texte , cela fonctionnement parfaitement :

=count ({<typefiche={Bug, Anomalie}, versionAffect={'2.1.*'}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef)+ 100 (exemple devaleur de reliquat)

J'ai essayé assez naivement de faire un :

     if (left(versionaffect,5)='2.1.0', formule1+100 , formule1) -> Marche pas

Une idée ou alors une autre façon de faire ?

35 Replies
martin59
Specialist II
Specialist II

La meilleure solution serait de créer dans votre script le n° de version avec uniquement les 5 premiers caractères.

Dans l'éditeur de script (Fichier / Editer le script), vous devriez avoir une instruction du type

LOAD

     projet,

     id,

     clef,

     ...

     versionAffect

FROM Fichier.xls (biff...);

Vous pouvez créer le n° de version en rajoutant ceci :

LOAD

     projet,

     id,

     clef,

     ...

     versionAffect,

    if (left(versionAffect,5) = '2.2.0', '2.2.1',left(versionAffect,5)) as Version

FROM Fichier.xls (biff...);

De cette manière, vous pourrez utiliser le champ Version comme dimension.

L'expression de votre graphique devient donc

count ({<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef) + if (Version='2.1.0', 100 , 0)

Martin Favier

Not applicable
Author

Ok pour les valeurs qui ne s'affichaient plus. Avec cette formule, elle s'affiche.

Reste toujours que la valeur pour la versionAffect = 2.1.0* vaut encore 3203

martin59
Specialist II
Specialist II

edcasali a écrit:

Ok pour les valeurs qui ne s'affichaient plus. Avec cette formule, elle s'affiche.

Reste toujours que la valeur pour la versionAffect = 2.1.0* vaut encore 3203

Vous parlez de ma méthode ?

Not applicable
Author

Oui votre formule ci dessous permet de visulaiser toutes les valeurs des autres versions.

Néanmoins, il reste que pour la valeur de versionAffect = 2.1.0* est erronée. Il devrait y avoir 503 (par rapport à la pièce jointe dans le fil de la discussion)

=sum(TOTAL <versionAffect>

Aggr(count({<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef)

+

if( wildmatch( versionAffect, '2.1.0*'), 100, 0)

,versionAffect))

Not applicable
Author

J'ai suivi votre conseil en mettant directement dans la requete un left(versionAffect,5).

Je tronque toutes les versions mais c'est moins important qu'il n'y parait vu que de toute façon, je le faisais dans la dimension.

Merci à vous 2 pour votre perspicacité et votre aide

martin59
Specialist II
Specialist II

Il ne faut pas utiliser de TOTAL ou de fonction AGGR().

Dans votre graphique, grâce au script que vous avez modifié, vous devez mettre la dimension Version (qui est le nouveau champ créé) et la formule indiquée précédemment (cf ci-dessous) en expression. Cela devrait fonctionner.

Formule à utiliser :

count ({<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef) + if (Version='2.1.0', 100 , 0)

Martin Favier