Jonathan
MembreRéponses céées sur le Forum
-
Arf, c’est galère quand on veut modifier un message, désolé pour le doublon 😀
Je rajoutais juste qu’il faut télécharger le fichier et non pas essayer de s’y connecter.
A plus tard,
-
Bonjour Charlotte,
Je me permets de vous signaler que les fonctions
CALCULATE
que vous avez utilisées n’apportent aucune valeur dans leur contexte actuel. Vous pouvez donc les retirer sans impact.La logique métier des calculs de stock peut varier selon les besoins. Parfois, il est nécessaire de récupérer la dernière valeur disponible à une date donnée et, en l’absence de données, renvoyer un
null
. D’autres fois, il est préférable de chercher la dernière date, même si elle se situe dans le passé, et parfois, on prolonge cette valeur de manière artificielle sur les lignes suivantes.Je vous ai préparé un exemple dans ce fichier PBIX, qui prend en compte ces différents cas de figure. Vous pourrez vous en inspirer pour affiner votre logique DAX (il faut le télécharger, n’essayez pas de vous connecter).
En ce qui concerne la différence entre
LASTNONBLANK
etLASTNONBLANKVALUE
, cette dernière force une transition de contexte, ce qui n’est pas toujours nécessaire en fonction de la logique métier. Dans ce cas, il vaut mieux utiliserLASTNONBLANK
avec unCALCULATE
.Pour faciliter la compréhension, j’ai mis en orange les tableaux qui ne correspondent pas ou peu à un cas métier réel, et en vert ceux qui sont utilisables (J’ai ajouté des commentaires pour qu’on comprenne mieux).
J’espère que cela vous sera utile. Bon courage pour la suite de votre projet !
-
Bonjour Charlotte,
Je me permets de vous signaler que les fonctions
CALCULATE
que vous avez utilisées n’apportent aucune valeur dans leur contexte actuel. Vous pouvez donc les retirer sans impact.La logique métier des calculs de stock peut varier selon les besoins. Parfois, il est nécessaire de récupérer la dernière valeur disponible à une date donnée et, en l’absence de données, renvoyer un
null
. D’autres fois, il est préférable de chercher la dernière date, même si elle se situe dans le passé, et parfois, on prolonge cette valeur de manière artificielle sur les lignes suivantes.Je vous ai préparé un exemple dans ce fichier PBIX, qui prend en compte ces différents cas de figure. Vous pourrez vous en inspirer pour affiner votre logique DAX.
En ce qui concerne la différence entre
LASTNONBLANK
etLASTNONBLANKVALUE
, cette dernière force une transition de contexte, ce qui n’est pas toujours nécessaire en fonction de la logique métier. Dans ce cas, il vaut mieux utiliserLASTNONBLANK
avec unCALCULATE
.Pour faciliter la compréhension, j’ai mis en orange les tableaux qui ne correspondent pas ou peu à un cas métier réel, et en vert ceux qui sont utilisables (J’ai ajouté des commentaires pour qu’on comprenne mieux).
J’espère que cela vous sera utile. Bon courage pour la suite de votre projet !
-
Bonjour Olivier,
Voici le lien vers la procédure de mise en place de l’actualisation incrémentielle des données. C’est plutôt bien détaillé.
Au début, il va falloir créer deux paramètres Power Query avec les noms réservés
RangeStart
etRangeEnd
.Ensuite, il faudra se servir de ces paramètres pour filtrer une colonne au format Date et heure (pas date seule).
Pour que ça foncitonne correctement avec votre connecteur dossier SharePoint, il faut faire ce filtre le plus haut possible dans la requête Power Query (juste après Source).
Si vous partez sur la date de modification du fichier, ça donnera :
= Table.SelectRows(Source, each [Date modified] >= RangeStart and [Date modified] < RangeEnd)
Ensuite le reste de la procédure est plutôt bien détaillé dans le lien que je vous ai transmis plus haut.
Bon courage,
-
Bonjour Olivier,
L’actualisation incrémentielle des données fonctionne très bien avec le dossier SharePoint. Il faut simplement faire l’opération en tout début de requête Power Query. Vous pouvez filtrer les données sur une des dates que renvoie le connecteur dossier SharePoint, je partirais plutôt sur la date de modification du fichier.
Si vous avez besoin d’aide sur la mise en œuvre, je pourrais l’expliquer plus en détail, mais je pense que la documentation de Microsoft détaille plutôt bien l’opération.
Bon courage pour la suite de votre projet.
-
Super, parfait ça ! 👍
-
Bonjour Jérémy,
Pour les stocks, on parle de mesures semi-additives (des choses qui peuvent s’ajouter entre elles comme stock A + stock B, mais qui ne s’ajoutent pas dans le temps).
La fonction DAX qui gère très bien ça c’est LASTNONBLANKVALUE. Attention, cette fonction génère obligatoirement une transition de contexte donc si vous n’avez pas de transition de contexte à faire ce sera plutôt un CALCULATE ma mesure LASTNONBLANK (qui elle permet de gérer la transition de contexte ou non).
La première est juste une simplification syntaxique de la seconde.
Bon courage pour votre projet, à plus tard.
-
Bonjour Olivier et merci.
On est sur la même idée je pense, expliquée d’une manière différente 😉
-
Bonjour Jérémy,
Je ne rencontre pas les problèmes mentionnés. Les filtres ne sautent pas et les ordres de tri ne changent pas.
Est-ce que par hasard vous n’auriez pas des signets car un signet peut largement faire sauter les tris et les filtres.
Mais sur le fond, je vous déconseille les filtres de partout. Par exemple, pour une utilisation du modèle en self-service BI, cela va être très compliqué à comprendre pour des utilisateurs non techniques. Si un visuel par exemple, ne fonctionne que si j’applique certains filtres alors je préfère gérer ces filtres dans la mesure DAX directement plutôt que dans les filtres. Sinon le risque c’est qu’un utilisateur fasse un modèle enfant ou un analyser dans Excel, qu’il s’attende à visualiser des chiffres identiques (et justes) et que ce ne soit pas le cas.
Autant faire directement des mesures DAX justes qui renvoient les résultats attendus sans avoir à appliquer de filtre par-dessus (difficile à expliquer aux utilisateurs finaux en plus je trouve).
-
Jonathan
Membre20 septembre 2024 à 18h43 en réponse à: Organisation Rubrique avec Waterfall Power BIBonjour,
Il vous faut une table de présentation avec deux colonnes au minimum :
- 1 colonne pour le texte,
- 1 colonne pour l’ordre d’affichage,
Il vous faut ensuite une mesure pour afficher vos mesures intermédiaires sur les bonnes catégories de la table de présentation (Un switch suffira).
Ensuite il faut trier la colonne texte par la colonne ordre.
Puis dans la cascade, vous avez la main pour trier votre axe dans l’ordre des catégories souhaitées et dans les paramètres de la cascade, vous trouverez l’option “afficher le nombre total de colonnes” qu’il faudra désactiver.
Un exemple concret de ce que ça donne (Données de test bien entendu) :
-
Bonjour,
Vous pouvez ajouter des colonnes en plus dans la table calendrier pour gérer cela.
Par exemple une colonne qui renvoie “Dernier Mois clôturé” en respectant votre besoin métier (si j’ai bien compris, ce serait le mois précédent le mois d’aujourd’hui). Pour une page qui n’afficherait que le mois clôturé, vous n’aurez qu’à filtrer sur ce nouveau champ.
Si c’est pour filtrer une année entière, vous pouvez faire la même logique avec une seconde colonne dans la table calendrier (“Année en cours” –> qui s’arrêtera au dernier mois clôturé).
-
Jonathan
Membre16 septembre 2024 à 23h00 en réponse à: Erreur lors du rafraichissement du modèle sémantique Power BIBonjour,
C’est la ligne 15 qui pose problème si une date est nulle. Il faut trouver un moyen de ne pas avoir de null ou alors il faut remplacer les valeurs nulles par 0 après la ligne 15 pour que la ligne 16 fonctionne (c’est elle qui doit générer le message d’erreur en réalité).
-
Jonathan
Membre11 septembre 2024 à 11h16 en réponse à: Certains éléments de ma table de faits n’arrive pas à être lié à un segmentConcernant votre calcul, il ne fonctionne pas car il ne tient pas compte du nombre de jours en cours de visualisation.
Exemple (si j’ai bien compris la demande) :
- J’ai 4 jours en cours de sélection, du 1er au 4 septembre,
- 1 bureau a été loué le 1 et le 3,
- A mon avis le résultat attendu est de 50%.
- Si c’est ça, vous pouvez tester cette mesure :
<pre class=”language-markup”>
Taux D'occupation réel =
VAR NbBureaux =
DISTINCTCOUNT ( Dim_Bureaux[ID] )
VAR NbReservations =
COUNTROWS ( Ft_Reservations )
VAR BaseTxOccupation =
DIVIDE (
NbReservations,
NbBureaux
)
VAR NbJours =
COUNTROWS ( DimDate )
RETURN
DIVIDE (
BaseTxOccupation,
NbJours
)Bonne continuation dans votre projet
-
Jonathan
Membre11 septembre 2024 à 10h24 en réponse à: Certains éléments de ma table de faits n’arrive pas à être lié à un segmentBonjour,
Je réponds à la toute première question en haut.
Ce phénomène se produit si l’intégrité référentielle n’est pas maintenue. Par exemple, une date dans la table de faits qui ne serait pas dans la table des dates ou encore un axe d’analyse qui ne serait pas présent dans une dimension.
Dans les visuels, on ne voit pas le problème puisque, par défaut, les visuels n’affichent pas les éléments Blank. Mais si on décide d’afficher les éléments sans données, on voit bien le blank arriver dans ce cas. Pour les filtre, c’est différents, il fait directement apparaître la ligne BLANK.
Donc pour moi, la piste est de checker si chaque dimension est bien exhaustive par rapport à toutes les tables de faits qui sont liées à cette dimension.
-
Séverine,
Désolé mais je ne pourrais pas passer plus de temps sur le sujet, il y a beaucoup trop de sujets à traiter.
Mais je vous donne quelques pistes qui pourraient vous aider :
- Changer les options de Power BI (et notamment du fichier utilisé) pour :
- Ne pas importer de manière automatique les relations,
- Ne pas détecter automatiquement les nouvelles relations (vous garderez la maîtrise de la modélisation et gagnerez du temps),
- Ne pas utiliser la case “Time Intelligence” (vous avez une table des dates),
- Marquer la table des dates comme table des dates du modèle,
- Créer une table de mesure et classer vos mesures (masquer tout ce qui est inutile comme les mesures intermédiaires),
- Il ne faut pas mettre de filtre sur vos visuels ou dans la page d’extraction (cela va générer des conflits avec la fonctionnalité d’extraction).
- Si vous mettez uniquement la mesure délai_5j_count, on voit que ça fonctionne mais cela génère des lignes blank dans votre tableau (cela vient du champ référence principalement).
- Il y a un problème de modélisation : pas de grande table à plat dans Power BI en général, on cherche plutôt à faire un modèle en étoile avec des dimensions qui filtres les faits.
- Je n’ai pas accès aux données car le pbix est trop ancien pour être pleinement utilisé chez moi mais à mon avis il y a matière à créer des dimensions assez facilement (pensez ensuite à changer vos champs dans les visuels pour utiliser ceux des dimensions et non de la table de faits).
- Je pense qu’il y a un problème de calcul de manière générale dans le modèle. Parfois ce n’est pas une mesure qu’il faut faire mais plutôt une colonne calculée :
- Par exemple la mesure attente_bis pourrait à mon avis être une colonne calculée car il s’agit d’un flag que vous souhaitez faire pour faire d’autres calculs,
Bon courage et bonne continuation pour la suite de votre projet.
- Changer les options de Power BI (et notamment du fichier utilisé) pour :