L'idée est - Pour ce faire, vous avez besoin d'une autre table dérivée de votre table existante contenant vos valeurs d'axe des x qui vont apparaître sur le graphique.
J'ai commencé avec des données comme ceci :-
Table 1
Donc, créons la colonne de l'axe (Colonne calculée) sur cette Table1 :-
AxisCol =
Var MaxYear = MAX((Table1[Date].[Année]))
Var Année_Requise = YEAR(Table1[Date])
Var Diff_Année = MaxYear - Année_Requise
Var sortie = IF(Diff_Année = 0, FORMAT(FORMAT(Table1[Date], "MMM AA"),"chaine"), FORMAT(Année_Requise, "@"))
Retourner (sortie)
Le type de données de cette AxisCol est "Texte".
Générer la colonne Mois Année et Année (Colonne calculée) dans la Table 1
Mois Année = FORMAT(Table1[Date], "MMM AA")
Année = YEAR(Table1[Date])
Définissez également le type de données de ces deux colonnes en tant que "Texte".
Créer une nouvelle table :-
Table_Axe = DISTINCT(Table1[AxisCol])
Cela a maintenant créé la table déconnectée.
Maintenant, créez la Col_Date (Colonne calculée) pour trouver l'ordre de tri à l'intérieur de la Table_Axe.
Date_col =
Var Valeur_Requise = VALUE(Table_Axe[AxisCol])
Var Année_ou_Mois_Année = SI(LEN(Valeur_Requise) = 4, "Année", "Mois Année")
Var année_découpage = VALUE("20" & RIGHT(Table_Axe[AxisCol],2))
Var mois_découpage = (LEFT(Table_Axe[AxisCol],3))
Var num_mois = SWITCH(mois_découpage, "Jan", 1, "Fév", 2, "Mars", 3, "Avr"
, 4, "Mai", 5, "Juin", 6, "Juil", 7, "Août"
, 8, "Sep", 9, "Oct", 10, "Nov", 11, "Déc"
, 12)
Var maDate = SI(Année_ou_Mois_Année = "Année",DATE(Valeur_Requise,1,1),DATE(année_découpage, num_mois,1))
Retourner maDate
Maintenant, vous pouvez créer l'Ordre de Tri (Colonne calculée) dans Table_Axe
Ordre_tri = DATEDIFF((Table_Axe[Date_col]),MAX(Table_Axe[Date_col]),MOIS)
Maintenant, la sortie finale en tant que Mesure,
ValeurDemandée =
var valeur_axe_requise = SELECTEDVALUE(Table_Axe[AxisCol])
Var axe_requis = LEN(valeur_axe_requise)
Var sortie1 = CALCULATE(MOYENNE(Table1[Valeur]), FILTER(Table1,Table1[Mois Année] = valeur_axe_requise))
Var sortie2 = CALCULATE(MOYENNE(Table1[Valeur]),FILTER(Table1, Table1[Année] = valeur_axe_requise))
var sortie_requise = SI(axe_requis = 4, sortie2, sortie1)
retourner sortie_requise
Cette mesure peut être modifiée selon vos sélections de filtre et d'autres conditions que vous pourriez avoir.
La visualisation finale ressemble à ceci,
Utilisez l'Ordre de Tri dans les infobulles puis triez l'axe à l'intérieur de la visualisation par l'Ordre de Tri.
Vous pouvez ensuite créer une relation entre les tables sur la colonne d'axe pour que vos tranches fonctionnent.
Vous pouvez ensuite différencier l'axe avec une mise en forme conditionnelle en utilisant ceci -
mise en forme conditionnelle = SI(LEN(SELECTEDVALUE(Table_Axe[AxisCol])) = 4,1,0)
Faites-moi savoir si vous avez du mal à comprendre la solution.
Acceptez la réponse si vous parvenez à la faire fonctionner pour vous.