[Power BI] Calcul d'une mesure DAX
Bonjour à tous,
Je viens vous demander de l'aide pour essayer de trouver une solution à mon problème.
J'essaye sur Power BI de faire un calcul de KM réalisé sur une période en fonction d'une date et d'une affectation d'un véhicule. J'ai plusieurs tables qui sont liées :
=> Une table Vehicule_Affect_Mensuelle qui me permet pour chaque date fin de mois (31/01/2025, 28/02/2025...) d'avoir une valeur unique d'affectation par véhicule. J'ai donc 3 colonnes : ID_CENTRE (qui correspond à l'affectation), ID_DATE, ID_PARC (qui correspond au véhicule).
=> Une table TABLE_DATE classique (clé principale = ID_DATE)
=> Une table DIM_Centre (clé principale = ID_CENTRE)
=> Une table Vehicules_Archives (clé princiaple = ID_PARC)
=> Une table Vehicule_Base_KM dans laquelle j'ai des dates (ID_DATE : fin de chaque mois), avec une valeur de compteur, un véhicule (ID_PARC) et un centre (ID_CENTRE que j'ai récupéré gràce à ma table Vehicule_Affect_Mensuelle).
Toutes les clés ont le même nom dans toutes mes tables pour faire plus facilement les liaisons.
Lorsque je crée un visuel (si je prends l'exemple d'un véhicule : le 1348).
Je récupère correctement la valeur du compteur par date, et sur le centre sur lequel il est affecté à cette date.
Or quand j'essaye (désespérement) de calculer les KM réalisés sur la période, je me retrouve avec d'innombrables incohérences. Le calcul de KM réalisé doit être : Compteur à date (si existant) - Dernier compteur le plus récent connu (je n'ai pas forcement chaque moi des relevés car les véhicules ne roulent potentiellement pas).
Et je veux bien sur que les KM réalisés impactent le centre sur lequel le véhicule est affecté à cette date la.
Plusieurs possibilités à mon problème :
Ma mesure DAX est complètement fausse, ou il y a une incohérence dans mes liaisons entre mes tables.
Sachant que dans mes visuels je veux prendre l'ID_PARC dans ma table Vehicule_Archives (qui contient toutes les informations qualitatives liées à mes véhicules), l'ID_CENTRE dans ma table DIM_CENTRE (idem, contient toutes les infos qualitatives liées aux centres), et les dates dans ma table DATE.
Je n'arrive pas à joindre mon fichier PowerBI car il fait 2.7 MO (max 1.5 Mo en PJ). Ma mesure DAX actuelle :
KM Réalisés Corrigés =
SUMX(
ADDCOLUMNS(
VALUES(Vehicule_Base_KM[ID_PARC]),
"DateActuelle", MAX(Vehicule_Base_KM[ID_DATE])
),
VAR VehiculeID = [ID_PARC]
VAR DateActuelle = [DateActuelle]
VAR LignePrecedente =
CALCULATETABLE(
TOPN(
1,
FILTER(
Vehicule_Base_KM,
Vehicule_Base_KM[ID_PARC] = VehiculeID &&
Vehicule_Base_KM[ID_DATE] < DateActuelle
),
Vehicule_Base_KM[ID_DATE], DESC
)
)
VAR ValeurActuelle =
CALCULATE(
MAX(Vehicule_Base_KM[KM_Compteur]),
FILTER(
Vehicule_Base_KM,
Vehicule_Base_KM[ID_PARC] = VehiculeID &&
Vehicule_Base_KM[ID_DATE] = DateActuelle
)
)
VAR ValeurPrecedente = MAXX(LignePrecedente, Vehicule_Base_KM[KM_Compteur])
VAR CentrePrecedent = MAXX(LignePrecedente, Vehicule_Base_KM[ID_CENTRE])
VAR CentreCourant = SELECTEDVALUE(Vehicule_Base_KM[ID_CENTRE])
RETURN
IF(
NOT ISBLANK(ValeurActuelle) &&
NOT ISBLANK(ValeurPrecedente) &&
CentrePrecedent = CentreCourant,
ValeurActuelle - ValeurPrecedente,
BLANK()
)
)Un grand merci pour votre aide,
Cordialement,