Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

YTD en fonction d'un exercice fiscal

Bonjour,

Voila ma société a un exercice fiscal qui debute va du 01/10/N au 30/09/N+1

J'ai bien trouvé la possibilité d'avoir un TCD avec une fonction YTD  la voila :

sum({<ANNEE={$(vMaxYear)},DATE={'<=$(vMaxDate)'},MOIS=>}(MNT_CREDIT-MNT_DEBIT))

Cette ligne fait reference a 2 variables :

vMaxYear = Year(Max(DATE))

vMaxDate = Date(max(DATE),)

le problème doit certainement venir de la, car avec tous ces éléments j'ai bien un tableau qui calcul en YTD mais il debute en janvier au lieu de commencer en octobre !!

pouvez vous m'aider svp ??

22 Replies
Not applicable
Author

cje merci pour ce tableau.

Il correspondrait exactement a ce que je cherche (en modifiant par annee et pas par mois) mais je n'arrive pas a l'adapter a un exercice fiscal 😕

rlp
Creator
Creator

Je pense que la set analysis était une mauvaise voie. Il faut utiliser l'instrucion IntervalMatch qui permet de lier des données temporelles à un intervalle.

Il suffit donc de créer uen dimension artificielle période_comptable:

période_comptable:

NoConcatenate

LOAD

    période_comptable ,

    Date#( début , 'DD/MM/YYYY') as début ,

    Date#( fin , 'DD/MM/YYYY') as fin

INLINE

[

'période_comptable' ,'début' , 'fin' ,

'2009-2010' , '01/10/2009' , '30/09/2010' ,

'2010-2011' , '01/10/2010' , '30/09/2011 ,

'2011-2012' , '01/10/2011' , '30/09/2012'

] ;

et de lier le champ DATE aux intervalles précédemment définis:

IntervalMatch( DATE )

LOAD

    début ,

    fin

RESIDENT période_comptable ;

Ensuite il faut construire un tableu ayany pour seule dimansion période_comptable et pour expression sum( CREDIT -DEBIT )

cje
Employee
Employee

Bonjour,

En continuité de votre demande, quelques remarques:

- les méthodes du SET ANALYSIS et de l'INTERVAL MATCH fonctionnent parfaitement. Elles ont cependant l'inconvénient d'être parfois complexes à programmer (surtout pour le SET ANALYSIS) et d'être plus gourmandes en ressources lorsqu'on monte en volumétrie ou que le nombre d'utilisateurs connectés augmente.

- on peut très basiquement utiliser le bon vieux principe de l'associativité inhérent à QlikView pour calculer n'importe quel agrégat en mode YTD en commençant à partir de n'importe quel mois. On a tendance à oublier cette méthode parce qu'elle était majoritairement utilisée lors des précédente versions de l'outil lorsqu'il n'y avait pas de SET ANALYSIS et consorts. Comme toute méthode, elle ne résoud pas tous les problèmes mais elle a au moins l'avantage d'être très simple à programmer et utiliser. Aucun problème de performance en terme de volumétrie et de montée en charge.

- l'idée de base dans ce cas consiste à recréer une table calendrier_YTD permettant de recréer les regroupements des mois selon nos besoins. La base des enregistrements de cette table sera la suivante

Mois          Mois_YTD

01-janvier     01-janvier

01-Janvier     02-Février

02-Fevrier     02-Février

01-Janvier     03-Mars

02-Fevrier     03-Mars

03-Mars       03-Mars

.....

Le champs Mois sera la clé de liaison avec votre table de faits. Le champs Mois_YTD sera le champ utilisé dans votre représentation graphique ou tableau. Quand vous utiliserez le champ Mois_YTD, QlikView sera automatiquement que cela correspond à l'agrégation des valeurs du champ Mois associées.

Si votre exercice fiscal change de période de départ, il vous suffira de modifier la table calendrier_YTD sans changer toutes vos formules dans les graphiques.

Je joins une petite appli de démonstration très basique mais que vous pourrez adapter à vos besoins très facilement. Ma seule transgression dans le SET ANALYSIS est pour représenter 2 exercices fiscaux sur le même graphique.

Cordialement.

flochi75
Creator III
Creator III

Bonjour Christophe,

c'est super, je vois que ça marche mais je ne comprends pas pourquoi dans le script "Mois" et Mois_YTD se chevauchent...

Merci

Florent

cje
Employee
Employee

Bonjour Florent

Je ne vois pas trop ce que vous entendez par 'se chevauchent'.

Ceci étant il faut juste comprendre le principe de base: une date quelconque est associée par le modèle à un autre champ de données permettant de calculer un agrégat. Ici en l'occurrence le mois.

Donc basiquement date->mois

Maintenant le champ mois doit avoir un comportement particulier symbolisé par le YTD.

Il faut donc créer une nouvelle association avec un autre champ que nous appellerons ici MOIS_YTD qui va permettre de recréer le comportement désiré.

Si on regarde la table calendrier qui va créer ce comportement , on aura

Date Mois Mois_ytd

01/10/15 10/15 10/15

01/10/15 10/15 11/15

01/11/15 11/15 11/15

01/10/15 10/15 12/15

01/11/15 11/15 12/15

01/12/15 12/15 12/15

Etc.

Cette table sera liée à votre table de faits par le champ date.

Ensuite on va jouer sur le deuxième principe de Qlikview : le moteur associatif ne stocke que les valeurs distinctes dans les champs.

Donc quand on va sélectionner une valeur dans Mois_ytd, par associativité elle sera associée à N valeurs distinctes dans les autres champs. On raisonne en termes de valeurs distinctes, pas de lignes.

Maintenant dans vos graphiques, il suffira de choisir le champ date, Mois ou Mois_ytd selon le type de restitution souhaitée.

Pour créer la table calendrier il existe plusieurs méthodes.

Une d'elle consiste d'abord à récupérer les valeurs distinctes du champ date puis de faire un produit cartésien de ce champ sur lui même pour créer tous les croisements possibles. Ensuite on fera un traitement qui parcourra le produit cartésien pour ne retenir que ce qui nous intéresse.

N'hésitez pas à poster sur ce fil si vous avez encore besoin de détails.

Cdt

Christophe JOUVE

QLIK FRANCE

Portable: +33676242247

Le 13 janv. 2016 à 16:24, Florent Lelarge-Otiniano <qcwebmaster@qlikview.com<mailto:qcwebmaster@qlikview.com>> a écrit :

flochi75
Creator III
Creator III

Merci Christophe,

si je comprends le principe, je ne comprend pas le script YTD et ses relations internes :

Capture.PNG

comment une même "Date" peut correspondre à 3 "Mois_ytd" différents ?

En tout cas merci pour ta réponse rapide !

Florent.

cje
Employee
Employee

Bonjour Florent,

EN pièce jointe une petite appli exemple qui parle d’elle-même.

Tu raisonnes enregistrement alors qu’il faut raisonner valeur distinctes sur les champs et associativité. Une torsion de l’esprit par laquelle je suis passé moi aussi au début.

Basiquement, une sélection de valeur sur le champ Mois_YTD va correspondre à une sélection de 1 à N mois sur le champ Mois et idem sur le champ date. Comme le champ date correspond avec la table de faits, le tour est joué.

Ce n’est pas parce que tu répètes la même valeur sur le champ Mois ou date que cela va dupliquer les enregistrements sélectionnés dans la table de faits.

Regarde la petite appli.

Cdt

Christophe Jouve

Principal Solution Architect

Direct: +33 1 55 62 65 54

Mobile: +33 6 76 24 22 47

Email: Christophe.Jouve@qlik.com

Qlik

France Headquarters Office,93 avenue Charles de Gaulle

92200 Neuilly sur Seine

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

Téléchargez gratuitement QlikView

http://www.qlikview.com/fr/explore/experience/free-download

<http://global.qlik.com/qonnections-2016/?SourceID1=Corporate_Email_Signature>

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.

flochi75
Creator III
Creator III

Houlà... j'ai du mal à suivre, je vais regarder cette appli avec attention.

Merci beaucoup pour tes réponses...

Et je te souhaite une excellente année 2016 !

Florent.

cje
Employee
Employee

Merci !

Toi aussi.

cdt

Christophe Jouve

Principal Solution Architect

Direct: +33 1 55 62 65 54

Mobile: +33 6 76 24 22 47

Email: Christophe.Jouve@qlik.com

Qlik

France Headquarters Office,93 avenue Charles de Gaulle

92200 Neuilly sur Seine

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

Téléchargez gratuitement QlikView

http://www.qlikview.com/fr/explore/experience/free-download

<http://global.qlik.com/qonnections-2016/?SourceID1=Corporate_Email_Signature>

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.

flochi75
Creator III
Creator III

je me demande si je n'ai pas un frémissement de compréhension:

il s'agit ici de faire un cumul dans Mois_ytd de l'ensemble des valeurs de la table des faits ?

dans ce cas, si on étend le tableau à l'ensemble de l'année, pour Mois_ytd :

  1. janvier = janvier
  2. février = janvier et février
  3. etc
  4. décembre = de janvier à décembre

Est-ce bien cela ?

Florent.