IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Power BI Discussion :

Formule DAX avec DATEADD ne fonctionne pas


Sujet :

Power BI

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : janvier 2021
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Formule DAX avec DATEADD ne fonctionne pas
    Bonjour à tous !

    Je viens vers vous car j'ai un problème sur ma fonction DAX.

    Je souhaite présenter sur un tableau l'année y-1 de l'année sélectionnée dans mon slicer/segment. (si je sélectionne l'année 2021 j'aurais le CA avec l'année 2021 à gauche et le CA 2020 à droite)

    j'ai trouvé une Formule pour résoudre ce problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CA y-1 = CALCULATE([CA $],  DATEADD('Calendrier'[année],-1,YEAR))
    La formule me parait bonne mais elle ne fonctionne pas ...

    Est ce que quelqu'un d'entre vous peut y jeter un coup d'oeil expérimenté pour m'aider ?

    Cordialement

    Matteo

  2. #2
    Membre actif Avatar de Tippa
    Homme Profil pro
    Consultant Formateur en Business Intelligence
    Inscrit en
    mars 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant Formateur en Business Intelligence

    Informations forums :
    Inscription : mars 2010
    Messages : 120
    Points : 202
    Points
    202
    Par défaut Date pas Année
    Bonjour,

    La formule avec le DATEADD doit calculer avec une date, donc dans ton calendrier il te faut prendre la colonne Date (la date complète) et non pas la colonne année, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CA y-1 = CALCULATE([CA $],  DATEADD('Calendrier'[DATE],-1,YEAR))
    Il y aussi possibilité d'utiliser SAMEPERIODLASTYEAR, basée sur la date.

    Bonne journée

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : janvier 2021
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour Tippa,

    Merci pour ta réponse !

    Mettre la colonne [Date] m'a permis d'avoir un résultat. Mais cependant le résultat m'indique l'année en cours (j'ai l'impression que le -1 ne fonctionne pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CA y-1 = CALCULATE([CA $],  DATEADD('Calendrier'[Date],-1,YEAR))
    Pensez-vous qu'il y ait une erreur dans ma formule ?

    Je vais essayer le "sameperiodlasteyear"

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant - Formateur - Datanaute & Power BI addict
    Inscrit en
    mai 2021
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant - Formateur - Datanaute & Power BI addict

    Informations forums :
    Inscription : mai 2021
    Messages : 59
    Points : 144
    Points
    144
    Par défaut
    Mattod,

    La formule CA y-1 = CALCULATE([CA $], DATEADD('Calendrier'[Date],-1,YEAR)) est correcte si la table calendrier est marquée comme table de date, sinon et bien fais le (c'est une bonne pratique ), sinon la bonne formule est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CA y-1 = CALCULATE( [CA $],  DATEADD( 'Calendrier'[Date].date, -1, YEAR ) )
    En espérant que ca aide..

    Enjoy Power BI
    Enjoy !

    May the Power BI be with you !

    ---------------------------------------------
    Rejoignez le groupe dédié à la Microsoft Power Platform pour échanger autour de Power BI, Power Apps, Power Automate et Power Virtual Agents Acces ICI

  5. #5
    Membre actif Avatar de Tippa
    Homme Profil pro
    Consultant Formateur en Business Intelligence
    Inscrit en
    mars 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant Formateur en Business Intelligence

    Informations forums :
    Inscription : mars 2010
    Messages : 120
    Points : 202
    Points
    202
    Par défaut Alternative avec YEAR
    Bonjour,

    Une autre approche est d'isoler l'année de la date de facture (ou autres) avec une formule de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CA N-1 = CALCULATE([CA HT],//Calculer le CA
    FILTER(Factures,//Filtrer la table facture...
    YEAR(Factures[Date Facture])=YEAR(TODAY())-1))//Où l'année de facture est égale à celle en cours -1
    Avec ma mesure CA HT qui est simplement la somme de mes ventes.

    Exemple avec SAMEPERIODLASTYEAR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CA HT N-1 SAMEPERIOD = CALCULATE([CA HT],//Calculer le CA
    SAMEPERIODLASTYEAR(MonCalendrier[DateRef]))//sur la même période l'année dernière
    MonCalendrier étant ma table de dates et DateRef ma colonne avec la date complète.

    Et un dernier avec PARALLELPERIOD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mesu CA N-1 PARALPERIOD = CALCULATE([Mesu CA HT],
    PARALLELPERIOD(MonCalendrier[DateRef],-12,MONTH))
    ou -1 YEAR ou -4 QUARTER...

    Selon le tableau de restitution que tu souhaites le résultat peut différer.
    Ci-dessous un petit résumé :

    * DateAdd et SamePeriodLastYear retournent un résultat DYNAMIQUE dépendant de la période de contexte (du visuel)

    * ParallelPeriod retourne un résultat STATIQUE basé sur l'intervalle et la période sélectionnée dans les arguments de la fonction.

    * ParallelPeriod et DateAdd peuvent "parcourir" 1 ou plusieurs intervalles, alors que SamePeriodLastYear ne peut que reculer de 1 an.

    * DateAdd utilise les intervalles DAY, MONTH, QUARTER et YEAR, alors que ParallelPeriod ne propose que MONTH, QUARTER et YEAR.


    Selon le contenu de ton visuel, tu peux obtenir un même résultat avec des fonctions différentes, cependant en changeant le contexte de ton tableau tu verras des différences.
    Donc pas de conclusion hâtive mais des tests préalables pour choisir la fonction la plus adaptée à ton besoin.

    Dis nous ce que tu as choisi et si ça fonctionne.

    Bonne journée

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/05/2008, 14h32
  2. DeleteFolder avec Wildcard - ne fonctionne pas ?
    Par chapeau_melon dans le forum VBScript
    Réponses: 1
    Dernier message: 12/07/2007, 20h22
  3. Réponses: 2
    Dernier message: 15/01/2007, 11h31
  4. besoin aide bouton avec effet zoom fonctionne pas.
    Par zicomoun dans le forum Flash
    Réponses: 3
    Dernier message: 13/06/2006, 08h15
  5. Réponses: 16
    Dernier message: 01/02/2006, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo