Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je souhaiterai remplacer l'année dans une sélection de date.
Je filtre sur Date en sélectionnant X dates de 2023 et je voudrais appliquer un filtre forcé dans une formule avec Date=Replace(Date,'2023',2022') pour avoir les mêmes dates de l'année précédente.
Par quoi faut-il remplacer Date dans la fonction Replace() pour avoir la liste des dates de la sélection active ?
Si ce n'est pas possible, avez-vous une meilleure idée ?
Je vous remercie par avance de votre aide.
Bonjour
OK je vois il te faut donc dans ton set analysis une liste de date du type
sum({<Datefield= {'05/01/2022,15/01/2022,01/02/2022,'}> } Sales)
Dont ces dates correspondraient à la sélection des dates 05/01/2023, 15/01/2023 et 01/02/2023
Pour ce faire tu peux passer par :
sum({<Datefield= {$(=replace(concat( distinct chr(39)& Datefield&chr(39),','),'2023','2022'))}> } Sales)
Et çà devrait marcher ...
A noter le changement d'année n'est pas dynamique donc la comparaison ne se fera que sur 2022 sur des dates sélectionnées en 2023.
Si tu peux passer par le script alors regarde de ce coté pour une solution plus simple :
Cela permet de comparer des Dates , plages de dates entre N et N-1 voire même de comparer des sélections à cheval sur 2 années par exemple 30/12/2023 et 28/12/2022 seront comparés à 30/12/2022 et 28/12/2021.
Cdt
Bonjour
Plutôt que la fonction replace () je te propose de regarder du coté de la fonction addyear()
ainsi çà pourrait donner :
21/08/2023 :
Sum({<Date = {'$(=Today())'}>}Sales)
21/08/2022
Sum({<Date = {'$(=AddYears(Today(),-1))'}>}Sales)
tu peux remplacer today() par ton champ date
Merci.
Mon problème n'est pas vraiment sur la fonction de date mais le fait qu'il y ait plusieurs dates à traiter dans le même filtre.
Je ne sais pas comment appliquer ce addyears() à chaque date en une fois et mon champ Date = '-' en cas de multi sélection :
J'ai réussi à faire ça mais malgré les bonnes dates affichées, cela me donne une mesure à 0€
Date = {"$(=Replace(chr(39) & concat(distinct date(Date, 'DD/MM/YYYY'), chr(39) & ',' & chr(39)) & chr(39), '2023' , '2022'))"}
Re,
OK si je comprends bien ton utilisateur sélectionne des dates une min et une max, dans ce cas ce type de formule devrait t'aider :
on va chercher les dates entre >= min(Datefield) et <= Max(Datefield) et pour chaque on va enlever 12 mois addmonth(Datefield,-12) :
=sum({<Datefield= {">=$(=Addmonths(min(Datefield),-12))<=$(=Addmonths(max(Datefield),-12))"}> } Sales)
C'est effectivement une solution possible mais le problème, même si ce n'est pas forcément logique, c'est le cas de figure ou 3 dates seraient sélectionnées type 05/01/2022 + 15/01/2022 + 01/02/2022. J'aurais donc une période du 05/01/2022 au 01/02/2022 au lieu de 3 jours. C'est pour ça que j'étais parti dans des modifs d'années en masse même si la probabilité que cela arrive est mince
Bonjour
OK je vois il te faut donc dans ton set analysis une liste de date du type
sum({<Datefield= {'05/01/2022,15/01/2022,01/02/2022,'}> } Sales)
Dont ces dates correspondraient à la sélection des dates 05/01/2023, 15/01/2023 et 01/02/2023
Pour ce faire tu peux passer par :
sum({<Datefield= {$(=replace(concat( distinct chr(39)& Datefield&chr(39),','),'2023','2022'))}> } Sales)
Et çà devrait marcher ...
A noter le changement d'année n'est pas dynamique donc la comparaison ne se fera que sur 2022 sur des dates sélectionnées en 2023.
Si tu peux passer par le script alors regarde de ce coté pour une solution plus simple :
Cela permet de comparer des Dates , plages de dates entre N et N-1 voire même de comparer des sélections à cheval sur 2 années par exemple 30/12/2023 et 28/12/2022 seront comparés à 30/12/2022 et 28/12/2021.
Cdt
J'ai utilisé ta formule et elle marche très bien. Merci.
J'ai juste remplacé les années 2023 et 2022 par des variables Année et Année de comparaison et c'est top.