22 Replies Latest reply: Jan 15, 2016 6:03 AM by Christophe JOUVE RSS

    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 ??

        • Re: YTD en fonction d'un exercice fiscal
          Raynald Fleche

          Bonjour,

          La formule trouvée permet de calculer un YTD sur une année calendaire standard :

          La première variable fixe l année et la seconde indique de prendre toutes les dates inférieures à la sélection.

          Dans votre cas, il faut utiliser ce principe de formule mais en utilisant (j imagine soit une date soit une période) en indiquant quelque chose du type

          Sum({$<date periode={">=$(date ou période min) <=$(date ou période Max)"}>} calcul)

          J espère que cela vous aidera

          • Re: YTD en fonction d'un exercice fiscal

            J'ai a presque resolu mon problème avec votre aide

             

            mais il reste me reste quand même un souci pour comparer N / N-1

             

            Voila la formule que j'ai utilisé pour N

             

            =sum({$<ANNEE=,ANNEE_FISCAL={$(#=max(ANNEE_FISCAL))},MOIS=,MOIS_FISCAL={"<=$(#=only(MOIS_FISCAL))"}>}CREDIT-DEBIT)

             

            je pensais faire comme ceci pour N-1 mais cela ne fonctionne pas (désolé pour mon ignorance)

             

            =sum({$<ANNEE=,ANNEE_FISCAL={$(#=max(ANNEE_FISCAL)-1)},MOIS=,MOIS_FISCAL={"<=$(#=only(MOIS_FISCAL))"}>}CREDIT-DEBIT)

             

            merci de votre aide

            • Re: YTD en fonction d'un exercice fiscal
              Richard Pressanti

              Créez un tableau comportant le champ ANNEE comme dimension et utiliser l'expression suivante:

               

              sum( { 1< DATE={

               

              '>= MakeDate(01 , 10 , num(ANNEE) )' ,

              '<MakeDate(30,09, num(ANNEE)+1)'

               

              } > } CREDIT-DEBIT )

              • Re: YTD en fonction d'un exercice fiscal

                Merci de votre aide mais cela ne fonctionne pas

                 

                je joins mon fichier d'exemple au cas ou

                 

                il y a le tableau 1 avec ma formule :

                 

                sum({$<ANNEE=,ANNEE_FISCAL={$(#=max(ANNEE_FISCAL))},MOIS=,MOIS_FISCAL={"<=$(#=only(MOIS_FISCAL))"}>}CREDIT-DEBIT)

                 

                et votre formule (qui ne fonctionne pas)

                 

                sum({1<DATE={'>=MakeDate(01,10,num(ANNEE))','<MakeDate(30,09,num(ANNEE)+1)'}>}CREDIT-DEBIT)

                 

                 

                au cas ou je souhaiterai aussi dans le tableau 2

                 

                comparer N à N-1

                 

                 

                Merci d'avance

                • Re: YTD en fonction d'un exercice fiscal
                  Richard Pressanti

                  Pourriez-vous reposter le même fichier mais en forcant une interprétation numérique pour DATE en le chargeant avec num() ?

                  • Re: YTD en fonction d'un exercice fiscal
                    Christophe JOUVE

                    Bonjour,

                    en pièce jointe une appli qui permet des calculs sur les champs date. Cela devrait peut-être vous aider à avanceer.

                    Cdt

                    Christophe Jouve

                    • Re: YTD en fonction d'un exercice fiscal
                      Richard Pressanti

                      Petite correction (j'avais fait les tests trop vite):

                       

                      Pour faire une intersection en set analysys, il faut utiliser la syntaxe:

                      Field = { 1er_ensemble} * { 2eme_ensemble}

                       

                      Mais dans votre cas, ce qui semble poser problème c'est l'utilisation de formules comme critères: j'obtiens des résultats quand je filtre sur des valeurs codées en dur mais dès que j'utilise un <=, ca me renvoie 0.

                      Je ne comprends pas car cette syntaxe fonctionne très bien sur mes fichiers...

                      • Re: YTD en fonction d'un exercice fiscal
                        Richard Pressanti

                        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 )

                        • Re: YTD en fonction d'un exercice fiscal
                          Christophe JOUVE

                          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.