Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
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
Not applicable
Author

J'ai placé versionAffect en dimension mais avec un calcul pour spécifier que tout ce qui est 2.2.0 devient 2.2.1.

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

Pas encore un truc simple

rlp
Creator
Creator

Il suffit d'intégrer le terme conditionné à l'intérieur du aggr:

=sum(aggr(

count(

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

     )

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

,versionAffect

))

Not applicable
Author

En reprenant la formule :

La valeur pour la version 2.1.0 passe à 3203.

La courbe ne présente plus les valeurs pour les autres versions.

rlp
Creator
Creator

JE me suis apercu d'une coquille dans ce que je vous ai envoyé:

Il faut taper wildmatch( versionAffect, '2.1.0*' ) i.e. fermer l'expression régulière par une quote.

Désolé. En espérant que ca marche...

Not applicable
Author

J'avais corrigé, car la formule m'indiquait une erreur dans les parenthèses.

Le problème reste entier hélas.

rlp
Creator
Creator

J'ai déjà eu ce problème: lorsqu'on utulise aggr, il faut coupler sum avec total<les-clés> sinon QV met tout sur une des valeurs:

Essayez de remplacer

sum( aggr(

par :

sum( TOTAL<versionAffect> aggr(

Not applicable
Author

Rappel de la formule :

=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),versionAffect))

Résultat: J'ai toujours 3203

rlp
Creator
Creator

Essayez de mettre versionAffect en dimension de votre graphique et nous allons essayer de trouver la bonne valeur. Ensuite, on remettra la dimension calculée...

rlp
Creator
Creator

Autre chose, votre table Qv est-elle issue d'une source unique ou est-elle reconstituée par des JOIN avec possibilité de champs positionnés à NULL ?

rlp
Creator
Creator

J'ai trouvé le vrai problème. C'est if( wildmatch() , 100) qui élimine les valeurs non matchantes: il faut ajouter le terme 0 donnant la valeur prise en cas d'échec du match d' où la formule:

=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))