6 Replies Latest reply: Oct 26, 2016 3:01 AM by Mikael Voisine RSS

    CA CUMULE

    LOIC MASSON

      Bonjour à tous,

       

      Je bloque sur un point et j'aimerai avoir votre avis.

       

      Je cherche à avoir le CA cumulé par mois des douze derniers mois sur histogramme (par exemple):

      Exemple pour:

      - Juillet 2016: Chiffre d'affaires du 01/08/2015 au 31/07/2016

      - Aout 2016: Chiffre d'affaires du 01/09/2015 au 31/08/2016

      - Septembre 2016: Chiffre d'affaires du 01/11/2015 au 30/09/2016

      etc.

       

      Je ne sais pas si je dois passer par le script ou si une fonction peut marcher..

       

      Merci de votre aide.

       

      Cordialement,

        • Re: CA CUMULE
          Robert Viel

          Bonjour Loic,

           

          Tu peux ajouter une expression comme celle-ci si tu as déjà établi un calendrier pour ton application

           

          Sum({<MoisSeq = {">-12<0"}>} Ventes)

           

          Voici un tutoriel pour créer un calendrier au besoin.

          https://community.qlik.com/docs/DOC-4848

           

          A+

           

          Robert

          • Re: CA CUMULE
            LOIC MASSON

            Bonjour Robert,

             

            Merci pour ta réponse mais je ne souhaite pas exactement cela...Dans un histogramme, je souhaite voir par mois, le CA cumulé des douze derniers mois donc pour

            Juillet 2016: Chiffre d'affaires du 01/08/2015 au 31/07/2016

            - Aout 2016: Chiffre d'affaires du 01/09/2015 au 31/08/2016

            - Septembre 2016: Chiffre d'affaires du 01/11/2015 au 30/09/2016

            etc.

            Merci d'avance.

              • Re: CA CUMULE
                Mikael Voisine

                Bonjour Loic

                 

                Pour ton pb, je suis passé par le sript

                rajoutes dans ton calendrier (si tu n'en n'a pas voir le lien de Robert) : date(TempDate,'YYYY-MM-DD') as Period1

                 

                puis

                 

                PeriodTbl:

                LOAD date(fieldvalue('Period1',recno()),'YYYY-MM') as Period

                AUTOGENERATE fieldvaluecount('Period1');

                 

                AsOfPeriodTable:

                LOAD

                Period as AsOfPeriod,

                'Rolling 12' as PeriodType,

                date(addmonths(Period,1-iterno()),'YYYYMM') as Period1,

                Year(Period) as Year

                 

                RESIDENT PeriodTbl

                WHILE iterno() <= 12;

                 

                inner join (AsOfPeriodTable)

                LOAD Period as Period1

                 

                RESIDENT PeriodTbl;

                 

                Si tu veux des explications, regardes ce post, Jonh défini bien cette fonction

                https://community.qlik.com/thread/29394

                  • Re: CA CUMULE
                    LOIC MASSON

                    Bonjour Mikael,

                     

                    Merci pour ta réponse, elle m'a aidé mais j'ai encore un soucis.. En effet dans la table asofperiod, j'ai l'ensemble des jours (j'ai essayé de changer le format de ma date mais le résultat est identique).. voici mon script également.

                     

                    SET ThousandSep=' ';

                    SET DecimalSep=',';

                    SET MoneyThousandSep=' ';

                    SET MoneyDecimalSep=',';

                    SET MoneyFormat='# ##0,00 €;-# ##0,00 €';

                    SET TimeFormat='hh:mm:ss';

                    SET DateFormat='DD/MM/YYYY';

                    SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';

                    SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';

                    SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';

                    SET LongMonthNames='janvier;février;mars;avril;mai;juin;juillet;août;septembre;octobre;novembre;décembre';

                    SET LongDayNames='lundi;mardi;mercredi;jeudi;vendredi;samedi;dimanche';

                    SET FirstWeekDay=0;

                    SET BrokenWeeks=1;

                    SET ReferenceDay=0;

                    SET FirstMonthOfYear=1;

                    let vDateMin = num(makedate(2010,01,01));

                    let vDateMax = num(today()+365);

                    let vNbJours = num(vDateMax-vDateMin);

                    let vdateMytd=Timestamp((today()-1),'DD/MM/')&num(Year(today())-1);

                    SET CollationLocale='fr-FR';

                     

                     

                    PERIODE_FISCALE:

                    LOAD * INLINE [

                        MIN, MAX, PERIODE

                              01/07/2010, 30/06/2011, 2011

                          01/07/2011, 30/06/2012, 2012

                          01/07/2012, 30/06/2013, 2013

                          01/07/2013, 30/06/2014, 2014

                          01/07/2014, 30/06/2015, 2015

                          01/07/2015, 30/06/2016, 2016

                          01/07/2016, 30/06/2017, 2017];

                     

                    CALENDRIER:

                    LOAD 

                       Date($(vDateMin)+RecNo(),'DD/MM/YYYY') as Date,

                       //Year($(vDateMin)+RecNo()) as [Fiscal Year],

                       month($(vDateMin)+RecNo()) as [Mois_fiscal],

                       num(Month($(vDateMin)+RecNo()))-3 as FiscalMonthNum,

                       Day($(vDateMin)+RecNo()) as [Jour],

                       'T'&ceil(month($(vDateMin)+RecNo())/3) as [Trimestre],

                       Week(Date($(vDateMin)+RecNo())) as Semaine,

                       WeekDay($(vDateMin)+RecNo()) as [Jour semaine],

                       Date($(vDateMin)+RecNo(),'DD/MM/YYYY') as Period1

                       AUTOGENERATE($(vNbJours));

                     

                     

                     

                     

                    LEFT Join

                    IntervalMatch(Date)

                    LOAD

                    MIN,

                    MAX

                    Resident PERIODE_FISCALE;

                    JOIN

                    LOAD *

                    Resident PERIODE_FISCALE;

                    DROP TABLE PERIODE_FISCALE;

                     

                     

                    PeriodTbl:

                    LOAD

                    date(fieldvalue('Period1',recno()),'DD/MM/YYYY') as Period

                    AUTOGENERATE fieldvaluecount('Period1');

                     

                     

                     

                     

                     

                     

                    AsOfPeriodTable:

                    LOAD

                    Period as AsOfPeriod,

                    'Rolling 12' as PeriodType,

                    date(addmonths(Period,1-iterno()),'DD/MM/YYYY') as Period1,

                    Year(Period) as Year

                     

                    RESIDENT PeriodTbl

                     

                    WHILE iterno() <= 12;

                     

                    inner join (AsOfPeriodTable)

                     

                     

                    LOAD Period as Period1

                     

                    RESIDENT PeriodTbl;

                     

                     

                     

                    Sans titre.png

                      • Re: CA CUMULE
                        Mikael Voisine

                        Bonjour

                        Si tu veux plutôt avoir les mois dans la table AsOfPeriod

                        au niveau de date(fieldvalue('Period1',recno()),'DD/MM/YYYY') as Period enlève les DD comme ça tu n'auras que les mois et les années

                        idem pour date(addmonths(Period,1-iterno()),'DD/MM/YYYY') as Period1,

                         

                        Ensuite dans ton graph, tu met AsOfPeriod en dimension

                        Et en expression, ton calcul de CA cumulé

                        par ex (ajustes avec ton appli) :

                        sum({$<[Fiscal Year]=,PeriodType={'Rolling 12'},

                        AsOfPeriod={"<=$(=Date(Max(DATE),'YYYY-MM'))>=$(=Date(YearStart(Max(DATE),-1),'YYYY-MM'))"},[Mois_fiscal]=>}CA)

                         

                        Pour info : ,PeriodType={'Rolling 12'} ne te sert pas. Je l'ai car dans mon appli j'ai des cumuls également sur 3 mois glissants et donc c'est pour les différencier