Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Marie_P
Contributor III
Contributor III

CA glissant 12 derniers mois en fonction de la selection active

Bonjour à tous 🙂

Je souhaiterais pouvoir faire apparaitre les clients qui n'ont pas fait de CA les 12 derniers mois en fonction du mois que j'ai sélectionné.

Par exemple : 

Je souhaite connaitre tous les clients qui vont avoir du CA en Août 2023 mais dont leur dernier CA remonte maximum à Juillet 2022. 

Autrement dit, les clients qui ont fait 0 en CA entre Juillet 2022 et juillet 2023 mais qui vont faire du CA en Août 2023.

 

Et j'aimerais faire la même chose pour les nouveaux clients (ceux qui vont avoir du CA en Aout 2023 par exemple mais qui n'ont jamais eu de CA auparavant)

Je ne sais pas si je suis très claire dans mes explications. J'aimerais utiliser uniquement des set analysis (donc ne pas rentrer dans le script)

Avez-vous des idées ? 🙂

 

Mille mercis pour vos retours 🙂

7 Replies
Cirdecp007
Creator
Creator

J'ai remplacé la période sur 12 mois pour faire du 01/08/2022 au 31/07/2023 mais vous pouvez indiquer -13 pour ajouter juillet 2022 :

If (sum({<Date={">=$(=AddMonths(Monthstart(max(Date)),'-12'))<=$(=AddMonths(Monthend(max(Date)),'-1'))"}>}CA_Mesure)=0 and sum({<Date={">=$(=Monthstart(max(Date)))<=$(=(Monthend(max(Date)))"}>}CA_Mesure)<>0,


'Nouveau client',


If (sum({<Date={">=$(=AddMonths(Monthstart(max(Date)),'-12'))<=$(=AddMonths(Monthend(max(Date)),'-1'))"}>}CA_Mesure)<>0 and sum({<Date={">=$(=Monthstart(max(Date)))<=$(=(Monthend(max(Date)))"}>}CA_Mesure)=0,

'Ancien client sans commande',

'Ancien client avec commande')


)

brunobertels
Master
Master

Bonjour 

petit correctif il manque une parenthèse ( en rouge ) 

If (sum({<Date={">=$(=AddMonths(Monthstart(max(Date)),'-12'))<=$(=AddMonths(Monthend(max(Date)),'-1'))"}>}CA_Mesure)=0

and sum({<Date={">=$(=Monthstart(max(Date)))<=$(=(Monthend(max(Date))))"}>}CA_Mesure)<>0,


'Nouveau client',


If (sum({<Date={">=$(=AddMonths(Monthstart(max(Date)),'-12'))<=$(=AddMonths(Monthend(max(Date)),'-1'))"}>}CA_Mesure)<>0

and sum({<Date={">=$(=Monthstart(max(Date)))<=$(=(Monthend(max(Date))))"}>}CA_Mesure)=0,

'Ancien client sans commande',

'Ancien client avec commande')


)

Cirdecp007
Creator
Creator

Bien vu

Marie_P
Contributor III
Contributor III
Author

Bonjour 🙂

 

Merci beaucoup pour votre retour.

Effectivement le calcul fonctionne, cependant cela ne varie pas si je sélectionne un autre mois, cela ne réagit pas en fonction de la sélection active du mois 🙂

Cirdecp007
Creator
Creator

Est-ce que vous avez bien un champ Date qui est lié au mois car, de mon côté, lorsque je filtre sur un mois (Month='01') je n'ai que les dates du mois de janvier disponibles et donc la fonction se décale bien.

Sinon, vos mois sont ils nommés ou ont ils des valeurs numériques ?

Qu'avez-vous lorsque vous filtré sur un mois et en mettant $(=max(Date)) dans une mesure/données.

Si la date reste toujours la même c'est qu'elle correspond probablement à la date max de vos données mais n'est pas rattaché au mois sélectionné.

Pouvez-vous copier-coller, ce que vous avez noté comme code svp ?

Il serait possible d'utiliser dans la formule Month= et Year= à la place de Date=, en générant une date 01/Month/Year qui remplacerait les max(Date) puis en utilisant les fonctions date() pour le format puis left() et right() pour récupérer le nombre de caractères (2 pour le numérique ou plus si le mois est en lettre) et la même chose pour l'année et additionner les 12 mois en décalant de 1 à chaque fois donc -12/-12 puis -11/-11 puis ... puis -1/-1 au lieu de faire -12/-1 direct. C'est laborieux mais faisable

Marie_P
Contributor III
Contributor III
Author

Bonjour et pardon pour mon délai de réponse, je viens seulement de voir votre réponse 🙂
Alors oui j'ai des champs :

STATS.ANNEE

STATS.NOM_MOIS

STATS.NUM_MOIS

STATS.MOIS

Cirdecp007
Creator
Creator

Il faut probablement remplacer les trois     sum({<Date={     par    sum({<STATS.ANNEE=,STATS.NOM_MOIS=,STATS.NUM_MOIS=,STATS.MOIS=,Date={

Cela permet de ne pas tenir compte de la sélection dans la formule.

Après si la date n'est toujours pas bonne, il faut peut être remplacer les max(Date) par $(='01/$(=if($(=len(STATS.NUM_MOIS))=2,$(=STATS.NUM_MOIS),0$(=STATS.NUM_MOIS)))/$(=STATS.ANNEE)')

Cela donnera le premier jours du mois et de l'année sélectionnés (ou année par défaut si non sélectionnée) à la place du jour maximum de la liste de dates