Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
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

L'erreur est locale au post.

J'ai fait un tableau dans lequel j'ai ajouté l'expression wildmatch( versionAffect, '2.1.*').

Pour chaque enregistrement contenant la valeur '2.1.0' (et autres caractères suivants), je récupère la valeur 1.

J'en conclue que la valeur est evaluée correctement puisque que la fonction me retourne 1 et 0 pour celle n'entrant pas dans le critères.

J'ai même essayé sous cette forme : (sans plus de succès)

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

rlp
Creator
Creator

C'est assez difficile d'évaluer sans le qvw mais je pense que le problème vient de la Set Analysis qui est évaluée globalement pour tout le tableau et non pour chaque ligne, de sorte que les sélections opérées en son sein font sauter certains enregistrements. Typiquement votre reliquat ne doit pas matcher avec vos sélections

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

2 Solutions:

1°) Remplacer le count + SA par un sum( if( match(typefiche, ...) AND match( resolution,...) , 1) )

2°) Faire de la SA au sein d'un aggr et sommer ensuite: sum( aggr( <expression_initiale> , type_fiche , resolution))

martin59
Specialist II
Specialist II

Pourriez-vous nous envoyer une image avec votre modèle de données ?

Martin Favier

Not applicable
Author

je peux vous envoyer un export des datas au format excel (pas en pièce jointe sur ce site)

Pour le modèle de données, vous souhaitez le .qvw ou les fichiers .tab de la structure de données (idem pas en pièce jointes sur le site)

martin59
Specialist II
Specialist II

Vous pouvez tout simplement faire une image du modèle avec l'une des options encadrées en rouge.

Pour avoir ce menu, Fichier / Visionneur de tables

2013-01-09_14h58_38.png

Vous devriez pouvoir diffuser cette image sur la communauté. Le but étant que tout le monde puisse profiter de la solution.

Martin Favier

Not applicable
Author

Je n'ai jamais mis en oeuvre les fonctions aggr ...

Modele.jpg

martin59
Specialist II
Specialist II

D'accord, il n'y a qu'une seule table.

Quelles sont les valeurs de versionAffect ? 2.1.0 ou 2.1.0....... ?

Martin Favier

Not applicable
Author

Par exemple sans toutes les citer :

2.1.0

2.1.0-R1

2.1.0-R1:2.1.0

2.1.0-R1:2.1.0-R2

2.1.0-R1:2.1.0a

2.1.0-R2

2.1.0:2.1.0-R2

2.1.0:2.1.0-R3

2.1.0:2.1.0-R3:2.1.0-R4

2.1.0:2.1.0a

2.1.0:2.2.0

Not applicable
Author

Avec la formule ci dessous, j'arrive au meme résultat qu'avec ma formule initiale

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

Comment puis-je préciser que si versionAffect = 2.1.0* il doit y avoir +100 ?

martin59
Specialist II
Specialist II

Ok, ce n'est donc pas versionAffect qui est utilisé comme dimension de votre graphique.

Ou alors vous en avez fait une dimension calculée ?

Quelle est la dimension de votre histogramme ?

Martin Favier