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 total année précédente

Bonjour,

J'ai besoin de votre aide pour un problème de calcul le total des quantités de l'année précédente jusqu'au mois sélectionné.

Je m'explique : j'ai une liste de quantité par mois :

Jan 2013=200        Jan 2012=100

Fev 2013=600         Fev 2012=500

Mars 2013=1000     Mars 2012=800

Si l'utilisateur choisi un mois dans la liste des mois (par ex: Fev 2013)

Je dois calculer le total des quantités de l'année précédente, c'est à dire : qté Jan 2012 + qté Fev 2012= 100+500 = 600.

Est-ce que c'est possible de faire ça avec set analysis?

Merci d'avance pour votre aide.

Cordialement,

1 Solution

Accepted Solutions
almamy_diaby
Creator
Creator

En m'inspirant de Christophe, je peux maintenant t'aider:

Année en cours:

Sum({$< InvoiceYear={$(=Max(InvoiceYear))}, InvoiceMonth={ "<=$(=num(date(AddMonths(max(InvoiceMonth),0),'MMM YYYY')))"}>} [QuantitySold])

Année Précédente:

Sum({$< InvoiceYear={$(=Max(InvoiceYear)),$(=Max(InvoiceYear-1))}, InvoiceMonth={ "<=$(=num(date(AddMonths(max(InvoiceMonth),-12),'MMM YYYY')))"}>} [QuantitySold]))


View solution in original post

9 Replies
Not applicable
Author

IN SCRIPT MAKE A FIELD

DATE(DATE#(datefield,'MMM YYYY'),'YYYY') AS Year

then try this

sum({<Year=>}VALUE)

or this one

sum({<Year=>}TOTAL VALUE)

Not applicable
Author

Ca fonctionne pas, il ne calcule pas le total des quantités de l'année précédente, il m'affiche juste la quantité du mois sélectionné.

Je m'explique un peu plus ce que je souhaite faire:

Si je sélectionne Fev 2013 dans la liste, je souhaite faire un calcul des quantités de l'année précédente : 100+500 = 600.

Si je sélectionne Mars 2013 dans la liste, je souhaite faire un calcul : 100+500+ 800 = 1400.

En gros, chaque fois quand je sélectionne un mois dans la liste, je souhaite obtenir un calcul du total des quantités de l'année précédent jusqu'au mois ( le mois égal = mois sélectionné).

cje
Employee
Employee

Bonjour,

Le YTD et LYTD sont assez classiquement demandés en analyse. QlikView permet de le faire assez simplement.

Pour vous en sortir, 2 solutions :

- Full SET ANALYSIS

- Mixte chargement et SET ANALYSIS

Vous trouverez en pièce jointe une application que j’avais envoyé il y a quelques mois et qui reprend le principe de la modélisation associative pour calculer un YTD à partir de données mensuelles, soit un mixte chargement et SET ANALYSIS. L’avantage est que cela marche quel que soit l’exercice et si votre exercice commence à un mois autre que janvier. En solution full set analysis, cela ne marcherait que pour les calendriers commençant en janvier.

Pour ce faire, on part du principe que en YTD, janv YTD=janv, fevr YTD=janvfevr, mars YTD =janvfévr+mars, etc…Il suffit donc de créer une table permettant de faire le lien entre votre période des data et une colonne période YTD et le tour est joué.

Cela peut être une bonne base de travail pour débuter. Si vous avez besoin de plus de détails, continuez la discussion.

Cdt

Christophe Jouve

Senior Solution Architect

Direct: +33 1 55 62 65 54

Mobile: +33 6 76 24 22 47

Email: Christophe.Jouve@qlik.com

QlikTech

France Headquarters Office,93 avenue Charles de Gaulle

92200 Neuilly sur Seine

qlik.com<http://www.qlik.com/>

18 octobre 2012 | De la Business Intelligence à la Business Discovery...

http://www.qlikview.fr/BDWT-Paris

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

Not applicable
Author

Bonjour Christophe,

Je travaille sous client web donc je ne peux pas créer une table qui me permet de faire le lien entre la période des data et une colonne période YTD comme vous avez dit.

Est-ce que vous pouvez m'expliquer un peu plus en détail ce que je dois faire pour obtenir le total des quantités de l'année N-1 s'il vous plait?

Actuellement, j'ai réussi de calculer les qtés MTD, qté YTD  et aussi %Evolution MTD/(N-1) (grace à la solution de "Almamy DIABY").

Voici l'expression :

=num(((Sum({$< InvoiceYear={$(=Max(InvoiceYear))}, InvoiceMonth={ "$(=date(AddMonths(max(InvoiceMonth),0),'MMM YYYY'))"}>} [QuantitySold])

-   

  Sum({$< InvoiceYear={$(=Max(InvoiceYear)),$(=Max(InvoiceYear-1))}, InvoiceMonth={ "$(=date(AddMonths(max(InvoiceMonth),-12),'MMM YYYY'))"}>} [QuantitySold]))

/

  Sum({$< InvoiceYear={$(=Max(InvoiceYear)),$(=Max(InvoiceYear-1))},  InvoiceMonth={ "$(=date(AddMonths(max(InvoiceMonth),-12),'MMM YYYY'))"}>}[QuantitySold])

   ) ,'# ##0,00%')

Mtn je dois calculer %Evolution YTD/(N-1), donc j'ai besoin de calculer le total des quantités de l'année précédente jusqu'au mois séléctionné.

%Evolution YTD/(N-1) = qté YTD - qté (N-1)]/ qté N-1 *100.

Pour faire ce calcul, j'ai besoin d'une expression qui me permet de calculer la quantité de l'année (N-1).

ex: j'ai une liste des mois , si je sélectionne Fev 2013 dans la liste des mois ,

%Evolution YTD/(N-1) = (200+600) - (100+500)/(100+500) * 100

Mes données:

Jan 2013=200        Jan 2012=100

Fev 2013=600         Fev 2012=500

Mars 2013=1000     Mars 2012=800

j'ai pas eu de problème pour calculer qté YTD (200+600) mais j'arrive pas à calculer qté N-1  (100+500), est-ce que vous pouvez me expliquer comment je peux obtenir ce calcul en utilisant une expression set analysis?

Merci encore pour votre aide.


cje
Employee
Employee

Re,

Solution en pièce jointe (si j’ai bien compris ce qu’il vous faut). Cela répond-t-il à votre besoin ?

Pour cet exemple, j’ai recalé l’exercice sur le mois de janvier en utilisant des annees et mois calendaires plutôt qu’une notion d’exercice commençant à n’importe quelle période.

Seule contrainte : avoir un champ annee et mois dans les données d’origine pour caler les calculs. Si tel n’est pas le cas, il faudra alors complexifier les formules pour extraire la valeur de l’annee et du mois en direct à partir de la date.

Onglet « calcul Set Analysis ».

Principe de chaque formule :

Pour l’annee calendaire, prendre soit le max de l’annee sélectionnée et le max -1 pour l’exercice précédent

Pour le mois, on prend toutes les valeurs de mois <= max(mois calendaire). Les mois étant des duals (association interne entre un nombre et un libellé), ils sont automatiquement utilisés en chiffre ou chaine selon les besoins.

Cdt

Christophe Jouve

Senior Solution Architect

Direct: +33 1 55 62 65 54

Mobile: +33 6 76 24 22 47

Email: Christophe.Jouve@qlik.com

QlikTech

France Headquarters Office,93 avenue Charles de Gaulle

92200 Neuilly sur Seine

qlik.com<http://www.qlik.com/>

18 octobre 2012 | De la Business Intelligence à la Business Discovery...

http://www.qlikview.fr/BDWT-Paris

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

almamy_diaby
Creator
Creator

bonjour ,

Je ne suis pas parvenu à trouver un set analysis pour t'aider. Cependant, j'ai une solution en attendant.

Année en cours:

Sum({$< InvoiceYear={$(=Max(InvoiceYear))}, InvoiceMonth={ "$(=date(AddMonths(max(InvoiceMonth),0),'MMM YYYY'))"}>} [QuantitySold])

+ Sum({$< InvoiceYear={$(=Max(InvoiceYear))}, InvoiceMonth={"$(=date(AddMonths(max(InvoiceMonth),-1),'MMM YYYY'))"}>} [QuantitySold])

+

--------

+

Sum({$< InvoiceYear={$(=Max(InvoiceYear))}, InvoiceMonth={"$(=date(AddMonths(max(InvoiceMonth),-11),'MMM YYYY'))"}>} [QuantitySold])

Il s'agit de faire la somme de la première expression en faisant varier le 0 à - 11

Année Précédente:

Sum({$< InvoiceYear={$(=Max(InvoiceYear)),$(=Max(InvoiceYear-1))}, InvoiceMonth={ "$(=date(AddMonths(max(InvoiceMonth),-12),'MMM YYYY'))"}>} [QuantitySold]))

+

Sum({$< InvoiceYear={$(=Max(InvoiceYear)),$(=Max(InvoiceYear-1))}, InvoiceMonth={ "$(=date(AddMonths(max(InvoiceMonth),-13),'MMM YYYY'))"}>} [QuantitySold]))

+

- -  -- --

+

Sum({$< InvoiceYear={$(=Max(InvoiceYear)),$(=Max(InvoiceYear-1))}, InvoiceMonth={ "$(=date(AddMonths(max(InvoiceMonth),- 23),'MMM YYYY'))"}>} [QuantitySold]))

Il s'agit de faire la somme de la première expression en faisant varier le -12 à - 23


almamy_diaby
Creator
Creator

En m'inspirant de Christophe, je peux maintenant t'aider:

Année en cours:

Sum({$< InvoiceYear={$(=Max(InvoiceYear))}, InvoiceMonth={ "<=$(=num(date(AddMonths(max(InvoiceMonth),0),'MMM YYYY')))"}>} [QuantitySold])

Année Précédente:

Sum({$< InvoiceYear={$(=Max(InvoiceYear)),$(=Max(InvoiceYear-1))}, InvoiceMonth={ "<=$(=num(date(AddMonths(max(InvoiceMonth),-12),'MMM YYYY')))"}>} [QuantitySold]))


Not applicable
Author

Merci encore pour ton aide

CDM
Contributor II
Contributor II

Effectivement si j'emploi:

=Sum({<DATE_STK={"$(=max(DATE_STK))"}>}[Cout STD total])

Ma valeur correspond à la bonne date, mais si j'applique:

=Sum({<DATE_STK={"$(=max(DATE_STK)-1)"}>}[Cout STD total])

La valeur est incorrecte (l'éditeur retourne '43606' comme date...)