Problème sur une formule "DATEYTD" et "YearEndDate"

Accueil – Le CFO masqué Forums Power BI Problème sur une formule "DATEYTD" et "YearEndDate"

Mots-clés : 

  • Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par gbodin, le il y a 4 années et 1 mois.
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Articles
  • #58882
    gbodin
    Participant

    Bonjour,

    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’avance

    Geoffroy BODIN

    #58888
    Sophie Marchand
    Participant

    Bonjour,

    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

    #59063
    gbodin
    Participant

    Bonjour 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 BODIN

    #59069
    Sophie Marchand
    Participant

    Bonjour,

    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

    #59083
    gbodin
    Participant

    Bonjour 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.
    #61630
    gbodin
    Participant

    Bonjour 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

6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.