Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 🙂
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')
)
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')
)
Bien vu
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 🙂
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
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
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