Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
alineclozel
Creator
Creator

Calcul en base 100

Bonjour

J'ai un calcul d'évolution de la population par commune que je veux ramener en base 100 :

-un champ "pop" de 1968 à 1999

Je voudrais donc calculer automatiquement mes différentes années de recensement par rapport à la base 100 de 1968.

Mes données sont rangées en ligne : un champ identique pop renseigné par autant de lignes que d'années.

comment lui indiquer de prendre la première valeur ? la plus ancienne ?

Merci

1 Solution

Accepted Solutions
alineclozel
Creator
Creator
Author

Bonjour,

Voilà la formule que j'ai trouvé et qui marche :

Sum(DISTINCT {<NOM_COMM={*},annee_pops={*}-{'2009'}-{'2010'}>}pops_com)

/

Sum({<NOM_COMM={*}>} total if(annee_pops=min(total annee_pops),[pops_com])))*100

soit en simplifiant :

Sum(pops_com)

/

(Sum( total if(annee_pops=min(total annee_pops),[pops_com])))*100

 

View solution in original post

8 Replies
alineclozel
Creator
Creator
Author

Désolée je ne sais pas pourquoi un traducteur automatique a mélangé mon propos !

Not applicable

Aline,

Il te faudra utiliser un set analysis afin de fixer une période déterminer.

Faire qch du type: sum(XX) / sum({set analysis} XXX)

Reste à faire le set. Un peu de doc devrait t'aider: Sets Analysis: syntaxes, exemples

Elle est en français mais son pendant anglais existe aussi.

Si j'essaie de mémoire (sans QV pour tester), j'écrirais qch comme ça (à multiplier par 100)

100*sum(XXX)/sum({<Year={"$(min({1} Year)"} >} XXX)

Le 1 dans permet de prendre toutes les années même celles qui ne sont pas sélectionnées. Si tu veux la première année sélectionnée, remplacer ce 1 par $.

Fabrice

maxgro
MVP
MVP

si je comprends tu veux un index chart

you can find it here; follow the correct answer and goto qvdesign blog (you can find index chart and a lot of others wonderful chart)

How to create a Index Chart?

alineclozel
Creator
Creator
Author

Bonjour, J'ai essayé de rédiger mon calcul comme ça : 100*sum({CommunesEpciGdA}pop)/sum({ pop}) Ca marche toujours pas ? une idée ???

Précision : mon champ annee est en format texte

Merci

Not applicable

Aline,

La syntaxe apparaît incorrecte, c'est sûr.

As-tu lu le doc sur les set analysis ? Il faut construire petit à petit ces sets, car la syntaxe est barbare et susceptible (la moindre erreur se traduit par un null)

Par exemple:

sum({<Year = {"1960"} >}  pop)

Pour obtenir la population de l'année 1960. Puis tester autre chose.

Champ année: attention, il n'y a pas de type de données dans Qlikview. Toutes les données sont dual (numérique et formattées), sauf le texte qui n'a pas de pendant numérique. 1960 est donc sûrement dual.

Fabrice

alineclozel
Creator
Creator
Author

Bonjour, J'ai trouvé une syntaxe qui marche :

sum (pops_pop)/ sum({}pops_pop)

Le problème c'est que si je remplace 2009 en 1968 ou 1999 ça ne marche plus.

Pourtant ces données sont bien dans mon tableau :

codgeo      annee     periode      nb_unites      superf      pop      pop_n_1      nais      dece

13001      2009      10           1186,08      141895      134324 15429 10575        

13001      1999      9,01      1 186,08      134324      123842 14064 9027    

13001      1990      8,005      1 186,08      123842      121327 13249 7825

13001      1982      7,035      1 186,08      121327      110659 11664 6740

13001      1975      6,975      1 186,08      110659      89566 11475 6133

13001      1968                     1 186,08                     89566

13001      2010      11 1 186,0800018 141438 134324 16972 11592

C'est comme si qlikview ne lisait que les premières lignes de mon tableau ?

Par ailleurs, et je pense que l'erreur est liée je veux qu'il me fasse un graphique sur plusieurs années mais il ne reconnait que mon année 1999 ?pour un graphique d'évolution de la population c'est pas top ! J'ai essayé de modifier le format de cette cellule dans min fichier source  (exel) et ça ne change rien ??? Merci de votre aide

alineclozel
Creator
Creator
Author

Bonjour,

J'ai trouvé une formule qui marche :

=Max({<Date={*}-{'2009'}-{'2010'}>}pops_pop)/(Min( total if(annee=min(total annee),[pops_pop]))/100)

Par contre je voudrais rajouter à cette formule un favori et là je ne trouve pas où l'insérer surtout dans la partie de formule avec total ????

Merci

alineclozel
Creator
Creator
Author

Bonjour,

Voilà la formule que j'ai trouvé et qui marche :

Sum(DISTINCT {<NOM_COMM={*},annee_pops={*}-{'2009'}-{'2010'}>}pops_com)

/

Sum({<NOM_COMM={*}>} total if(annee_pops=min(total annee_pops),[pops_com])))*100

soit en simplifiant :

Sum(pops_com)

/

(Sum( total if(annee_pops=min(total annee_pops),[pops_com])))*100