Accueil – Le CFO masqué › Forums › Power BI › Problème sur une formule "DATEYTD" et "YearEndDate"
Étiqueté : DAX
- Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par
gbodin, le il y a 5 années et 1 mois.
-
AuteurMessages
-
31 octobre 2019 à 8 h 53 min #58882
gbodin
ParticipantBonjour,
Je rencontre un problème sur formule DAX / DATEYTD.
J’explique le contexte :
J’ai créé un pont entre un progiciel métier et Power BI avec une URL.
Ce pont restitue l’ensemble des écritures comptables d’un dossier.
Cela entend qu’un exercice fiscal peut avoir une date de fin qui va du 31/01 au 31/12. C’est une variable que je ne connais pas à l’avance.
J’ai créé une table Calendar.
J’ai créé une mesure qui définit le périmètre fiscal, c’est-à-dire que j’ai juste à ajouter un chiffre de 1 à 12 pour déterminer le mois fiscal de référence, c’est la seule valeur ajoutée manuellement dans mon Power BI.Exemple, pour un exercice débutant au 01/07/** :
Saisie_Mois_Annee_Fiscale = 7
Mois Fiscale =
IF([Saisie_Mois_Annee_Fiscale]= 1;
FORMAT(Calendrier[Mois];”General Number”);
IF(Calendrier[Mois] >= [Saisie_Mois_Annee_Fiscale];
FORMAT(Calendrier[Mois]-[Saisie_Mois_Annee_Fiscale]+1;”General Number”);
FORMAT (12-[Saisie_Mois_Annee_Fiscale]+Calendrier[Mois]+1;”General Number”)
))Mon problème :
J’ai réalisé une mesure afin de calculer mon chiffre d’affaire cumulé par mois fiscal. Le problème c’est que Power BI ne veut pas de formule dans la partie « YearEndDate ».
CA Fiscale YTD = CALCULATE([Total_CA_€];DATESYTD(Calendrier[Date];FORMAT(‘Définition du Périmètre Fiscale'[JJ/MM _Annee_Fiscale];”jj/MM” )))JJ/MM_fin_Annee_Fiscale = LOOKUPVALUE(Calendrier[DateFinMois];Calendrier[Mois];[Saisie_Mois_Annee_Fiscale]-1)
DateFinMois = LEFT(
ENDOFMONTH(Calendrier[Date]);5)J’ai le message d’erreur suivant : Seule une valeur de date constante est autorisée en tant qu’argument de date de fin d’année.
J’ai bien consulté votre explication sur : https://www.lecfomasque.com/power-bi-annee-fiscale-vs-annee-calendrier/ mais vous ajoutez manuellement la « YearEndDate ».
Pouvez-vous m’aider ?
Merci D’avanceGeoffroy BODIN
31 octobre 2019 à 10 h 52 min #58888Sophie Marchand
ParticipantBonjour,
Vous pourriez utiliser la technique démontrée dans l’article suivant https://www.lecfomasque.com/power-bi-calendrier-4-4-5/.
Sinon, vous allez trouver une technique différente ici https://www.fourmoo.com/2016/12/07/power-bi-using-parameters-in-calculated-measures-making-calculated-measures-dynamic-based-on-parameter/ mais elle est beaucoup plus laborieuse à mettre en place et je soupçonne qu’elle sera aussi beaucoup moins performante.
Au plaisir,
Sophie
13 novembre 2019 à 1 h 08 min #59063gbodin
ParticipantBonjour Mme Marchand,
Ma table calendar est faite comme ci-dessous :
Calendrier = ADDCOLUMNS(CALENDAR(MINX(‘Comptabilité’;’Comptabilité'[Date]);MAXX(‘Comptabilité’;’Comptabilité'[Date]));”Année”;YEAR([Date]);”Jour”;DAY([Date]);”Mois”;MONTH([Date]);”Nom du mois”;FORMAT([Date];”MMMM”))J’ai ajouté le mois et l’année fiscale comme expliqué dans mon précédent commentaire.
Pensez-vous qu’il est possible de faire un calendrier 4-4-5 avec des dates qui sont constamment différentes ?
J’ai regardé votre lien avec le calendrier 4-4-5. Cependant, il ne fait pas allusion à cette problématique de dates de début/fin qui ne sont pas fixe.Merci d’avance
Geoffroy BODIN13 novembre 2019 à 9 h 03 min #59069Sophie Marchand
ParticipantBonjour,
Personnellement, je crois préférable de préparer la table de dates dans Power Query car il s’agit là d’une table comme une autre et non d’une expression analytique, pour lesquelles je réserver le DAX. Mais dans tous les cas, je ne vois pas pourquoi ça ne fonctionnerait pas. Essayez-le et redonnez m’en des nouvelles.
Au plaisir,
Sophie
13 novembre 2019 à 10 h 31 min #59083gbodin
ParticipantBonjour Mme Marchand,
Suite à votre réponse, j’ai créé une table comme dans la formation Power BI de « Niveau 3 ».
J’ai ensuite inséré mes deux colonnes “Mois fiscal” et “Année fiscale” par un langage DAX (car je n’arrive pas à le retranscrire en Power Query).
Mois_Fiscal = IF(‘Calendrier'[Mois]>=[Saisie_Mois_Annee_Fiscale];’Calendrier'[Mois]-[Saisie_Mois_Annee_Fiscale]+1;12-[Saisie_Mois_Annee_Fiscale]+’Calendrier'[Mois]+1)
Année_Fiscale = IF(‘Calendrier'[Mois_Fiscal]>=’Calendrier'[Mois];’Calendrier'[Année];’Calendrier'[Année]+1)
Dans votre création de calendrier 4-4-5 (https://www.lecfomasque.com/power-bi-calendrier-4-4-5/), vous avez les colonnes NoSemaineFiscal, JourFiscal et Jour de l’année. Avez-vous utilisé le langage DAX ou êtes-vous passé par Power Query ?
Je n’ai pas trouvé de guide pour arriver au même résultat que vous. Vous trouverez l’impression écran de ma table ci-joint.Merci d’avance
Geoffroy Bodin
Attachments:
You must be logged in to view attached files.28 février 2020 à 2 h 56 min #61630gbodin
ParticipantBonjour Mme Marchand,
Après plusieurs mois de pratique, je peux vous communiquer mon astuce pour palier au problème ci-dessus.
J’espère que cela pourra aider votre communauté.Chiffre_d’affaire_Cumulé_€ =
var monthh = if(hasonevalue(Calendrier[Date]);VALUES(Calendrier[Date]);max(Calendrier[Date]))
return
CALCULATE([Chiffre_d’affaire_€];Calendrier[Date]>DATE(1900;01;01);Calendrier[Date]<=monthh;GROUPBY(Calendrier;Calendrier[Année_Fiscale]))Nous avons donc, avec cette mesure, la possibilité d’avoir une année fiscale décalée ou non décalée.
BAV,
Geoffroy BODIN
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.