Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Cirdecp007
Creator
Creator

Calculer un total en fonction de plusieurs critères

Bonjour à tous,

Je coince sur le calcul de totaux sur mes lignes et j'ai besoin de votre aide svp (car je vais devenir fou autrement 🙂 )

J'ai un tableau comme celui ci-dessous où j'essaie d'obtenir "Objectif Total N x Poids"

CLIENT GROUPE REF Objectif Total N Réel 1 N -1 GROUPE Réel 2 N -1 CLIENT-GROUPE Poids Réel 2 / Réel 1 Objectif Total N x Poids
A X X1 50 ??? ??? ??? ???
B X X1 50 ??? ??? ??? ???
A X X2 20 ??? ??? ??? ???
B X X2 20 ??? ??? ??? ???
A X X3 30 ??? ??? ??? ???
B X X3 30 ??? ??? ??? ???
A Y Y1 10 ??? ??? ??? ???
B Y Y1 10 ??? ??? ??? ???
A Y Y2 5 ??? ??? ??? ???
B Y Y2 5 ??? ??? ??? ???
A Y Y3 15 ??? ??? ??? ???
B Y Y3 15 ??? ??? ??? ???

 

Pour cela, j'ai un "Objectif Total N" qui représente le total de l'objectif à faire en 2024 pour tous les clients (A et B dans mon exemple) par "REF" mais il me faut le multiplier par un "Poids Réel 1 / Réel 2" que je dois calculer par rapport aux données réelles de 2023 de référence n'apparaissant pas sur ce tableau mais appartenant à des "GROUPE" (X et Y dans mon exemple) commun aux "REF" visibles.

Je dois donc trouver "Réel 1 N -1 GROUPE" qui est le total de toutes les références existantes (visibles et non visibles sur le tableau) par "GROUPE" et "Réel 2 N -1 CLIENT-GROUPE" qui est le total de toutes les références existantes par "GROUPE" et par "CLIENT".

J'ai réussi à trouver plus ou moins "Réel 1 N -1 GROUPE" en faisant :

if(GROUPE='X',
sum(Total {1<GROUPE={'X'},REF=p(REF)>} CA_Réel)
,if(GROUPE='Y',
sum(Total {1<GROUPE={'Y'},REF=p(REF)>} CA_Réel)
,''))

mais cela m'oblige à indiquer toutes les valeurs de "GROUPE" une à une dans des conditions.

Je pourrais également ajouter une imbrication avec chaque "CLIENT" pour obtenir "Réel 2 N -1 CLIENT-GROUPE" mais il y en a beaucoup trop à faire et cela ne sera pas dynamique s'il y a un changement de "GROUPE" et/ou de "CLIENT"

Avez-vous des idées pour m'affranchir de ces conditions et obtenir directement les totaux en fonction des éléments "GROUPE" et "CLIENT" présents sur chaque ligne ?

Il faudrait quelque chose comme sum(Total {1<GROUPE={GROUPE de la ligne},CLIENT={CLIENT de la ligne},REF=p(REF)>} CA_Réel)

Je vous remercie par avance de votre aide.

1 Solution

Accepted Solutions
theoat
Partner - Creator III
Partner - Creator III

Bonjour,

Voici un élément de réponse, j'ai généré des données fictives pour le CA_Réel.

Pour votre colonne Réel 1 N -1 GROUPE :

  • aggr(NODISTINCT sum([CA Réel N-1]),GROUPE)

Pour votre colonne Réel 2 N -1 CLIENT-GROUPE :

  • aggr(NODISTINCT sum([CA Réel N-1]),CLIENT,GROUPE)

Pour votre colonne Poids Réel 2 / Réel 1 :

  • column(2)/column(1)

Pour votre colonne Objectif Total N x Poids :

  • column(3) * [Objectif Total N]

A vous d'adapter les formats des mesures à votre convenance.
N'hésitez pas à revenir vers moi si vous avez la moindre question.

Cordialement,
Théo ATRAGIE.

View solution in original post

3 Replies
theoat
Partner - Creator III
Partner - Creator III

Bonjour,

Voici un élément de réponse, j'ai généré des données fictives pour le CA_Réel.

Pour votre colonne Réel 1 N -1 GROUPE :

  • aggr(NODISTINCT sum([CA Réel N-1]),GROUPE)

Pour votre colonne Réel 2 N -1 CLIENT-GROUPE :

  • aggr(NODISTINCT sum([CA Réel N-1]),CLIENT,GROUPE)

Pour votre colonne Poids Réel 2 / Réel 1 :

  • column(2)/column(1)

Pour votre colonne Objectif Total N x Poids :

  • column(3) * [Objectif Total N]

A vous d'adapter les formats des mesures à votre convenance.
N'hésitez pas à revenir vers moi si vous avez la moindre question.

Cordialement,
Théo ATRAGIE.

Cirdecp007
Creator
Creator
Author

Merci beaucoup. 

J'ai réussi à adapter ces formules à mes besoins.

theoat
Partner - Creator III
Partner - Creator III

Avec plaisir.

Bonne fin de journée à vous.