Accueil – Le CFO masqué › Forums › Power BI › Utilisation valeur saisie par l'utilisation
- Ce sujet contient 14 réponses, 2 participants et a été mis à jour pour la dernière fois par
mathieu.sadoulet, le il y a 5 années et 2 mois.
-
AuteurMessages
-
18 janvier 2020 à 9 h 26 min #60458
mathieu.sadoulet
ParticipantBonjour,
J’ai un champ de données avec des valeurs de 1 à 20 que je vais mettre sous forme de liste déroulante pour sélection des valeurs par l’utilisateur.
J’aimerais pouvoir récupérer les valeurs sélectionnées par l’utilisateur pour pouvoir ensuite l’utiliser dans les colonnes de calcul ou des mesures.
Comment puis-je faire pour récupérer ces valeurs ? (ou le max d’un segment)
Puis je avoir une liste déroulante avec sélection obligatoire par l’utilisateur d’une seule valeur et non une sélection multiple ?Enfin pour la donnée A de la première colonnes, comment puis-je aller récupérer dans la colonne B la valeur de cette ligne? (j’ai tenté avec un calculate et un filter mais le soucis du filter et que pour le champ en question il faut lui donner une valeur et non un paramétre)
Merci
18 janvier 2020 à 9 h 30 min #60459Sophie Marchand
ParticipantBonjour,
Vous devez utiliser les paramètres de scénarios. Voici un lien qui explique comment ça fonctionne: https://www.lecfomasque.com/power-bi-utiliser-les-parametres-de-scenarios/.
Au plaisir,
Sophie
18 janvier 2020 à 17 h 31 min #60463mathieu.sadoulet
ParticipantMerci cela m’aide mais ne répond pas complétement à mon besoin et améne une autre question.
Cela permet de recuperer une valeur NOMBRE saisie par l’utilisateur mais ne permet pas de recuperer un champ texte dans une liste. Y a t-il une possibilité?
POur mon besoin, cf fichier joint le cherche à aller plus loin. En fonction de la valeur de 2 champs saisie pas l’utilisateur (1 une liste texte, 1 un nombre) je cherche à récupérer la valeur temps de construction pour l’utiliser dans un calcul.
J’arrive à afficher dans le rapport la valeur mais je n’arrive pas à l’utiliser dans un calcul. Je cherche sur l’exemple à calculer Coeff * durée construction pour l’ensemble de la base
Coefficient étant la valeur Temps de construction BP pour le champ Niveau saisi par l’utilisation et le nom batiment saisi par l’utilisateur.
J’ai essayé une formule du genre
Durée pondéré = CALCULATE(sum(test[Temps de construction (BP)]);FILTER(test;test[Niveau du batiment]=’Niveau BP'[Valeur Niveau BP]))mais cela ne marche pas car je crois que dans le = de la fin de la fonction filter il attend une valeur et nom un champ (si je met 5 cela fonctionne)
Merci de votre aide
Attachments:
You must be logged in to view attached files.18 janvier 2020 à 18 h 06 min #60466Sophie Marchand
ParticipantBonjour,
Je n’ai pas ouvert votre fichier mais à la lecture de votre énoncé, je crois que vous recerchez une approche qui s’effectue avec une combinaison de fonctions SWITCH et SELECTEDVALUE, tel que montré à l’étape 2 dans l’article suivant: https://www.lecfomasque.com/power-bi-presenter-un-etat-des-resultats/.
Au plaisir,
Sophie
18 janvier 2020 à 18 h 28 min #60467mathieu.sadoulet
ParticipantMerci,
CEla me semble complexe et ne pas répondre à mon besoin mais je vais regarder cela à tête reposée.
Peut-être que ce que je cherche à faire est plus explicite avec le fichier (je cherche à faire un calcul avec la valeur de la carte coeff multiplié par la donnée de chaque ligne dans la base de donnée)Par contre, par rapport au filtre de la fonction calculate, est ce que après le = il faut impérativement que de soit une valeur( nombre ou texte) ou l’on peut faire appel par exemple à la valeur d’une mesure?
Car régulièrement je cherche à avoir la seconde option.Merci
18 janvier 2020 à 18 h 36 min #60469Sophie Marchand
ParticipantBonjour,
Sans avoir étudié votre modèle de données, ce que je vois dans votre formule c’est que vous faites un test logique, dans votre fonction Filter, en comparant des données de deux colonnes de deux tables différentes qui ne sont aucunement liées… de là le problème.
Au plaisir,
Sophie
19 janvier 2020 à 8 h 31 min #60470mathieu.sadoulet
ParticipantPOur que cela fonctionne, même la mesure qui est une valeur doit être dans la même table ?
La c’est le scenario qui a généré une seconde table.
Je l’avais fait dans une autre table car ma liste est forcement comme cela au niveau du champ de choix utilisateur et je ne sais pas comment je peux lié les 2 tables car il n’y a pas vraiment de champs commun.
En fait, je veux dans le filter mettre une valeur qui vient d’un choix de l’utilisateur dans le rapport.
Avecc la formule Durée pondéré = CALCULATE(sum(test[Temps de construction (BP)]);FILTER(test;test[Niveau du batiment]=5))
cela fonctionne mais j’aimerais remplacer la valeur 5 par la valeur saisie par l’utilisateur dans le scénario “Niveau du BP”
19 janvier 2020 à 8 h 47 min #60473Sophie Marchand
ParticipantBonjour,
Dans ce cas, vous pourriez simplement faire:
Durée pondérée = CALCULATE(SUM(test[Temps de construction (BP)]),FILTER(test,test[Niveau du batiment]=MAX(test[Niveau du batiment])))
Mais je ne comprends pas votre calcul…
Vous obtiendriez le même résultat sans faire un FILTER… Votre filtre ici ne sert à rien puisque par défaut, la somme va s’effectuer en fonction du filtre sélectionné par l’usager.
Vous pourriez donc en théorie utiliser CALCULATE(SUM(test[Temps de construction (BP)]))…
Au plaisir,
Sophie
19 janvier 2020 à 9 h 23 min #60474mathieu.sadoulet
ParticipantBOnjour,
JE viens de tester, les 2 fonctions ne donnent pas le mème résultat et aucune ne donne le résultat que je souhaite.
Dans la premiére formule le max retourne forcement 20 donc dans chaque ligne j’ai la valeur du Temps de construction correspondant au niveau 20 soit 0,5
Dans la seconde, cela revient a recopier la colonne Temps de construction, donc cela n’apporte rien de plus.
Dans exemple joint l’utilisateur à sélectionner niveau du BP à 5 (ou 10 dans le scenorio). Le résultat attendu pour toutes les lignes et e temps de construction correspondant au niveau sélectionné par l’utilisateur soit 5. Le résultat attendu est donc pour chaque ligne de 0,86
L’idée pour moi est donc bien une formule
Durée pondéré = CALCULATE(sum(test[Temps de construction (BP)]);FILTER(test;test[Niveau du batiment]=5))MAIS en remplaçant la valeur 5 par la valeur qui sera saisie par l’utilisateur (ici 5 donc c’est la meme chose mais s’il saisi 10 la formule devra prendre en compte la valeur de 10)
Cordialement,Attachments:
You must be logged in to view attached files.19 janvier 2020 à 9 h 33 min #60476Sophie Marchand
ParticipantBonjour,
Vous avez réussi à me mélanger complètement.
Dans ce nouveau fichier, vous avez inséré des paramètres de scénarios alors que dans ma réponse précédente, je n’utilisais pas de paramètres de scénarios.
J’ai énormément de difficulté à comprendre ce que vous essayez de faire (vous parlez de PONDÉRATION alros que vous faites une SOMME) alors, je répondrai à votre question seulement si vous faites ce qui suit:
1 – Fournissez un fichier .pbix avec uniquement les données de base de votre modèle de données
2 – Fournissez une image du résultat recherché (pour l’image, vous pouvez simplement mettre vos fameuses valeurs fixes et dire ce qu’elles remplacent en réalité)
3 – Fournissez les résultats attendus pour différents choix de l’usagerNe fournissez pas d’autres epxlications. Fournissez seulement les réponses à ces 3 points et je vous fournirai la bonne mesure.
Merci.
Sophie
19 janvier 2020 à 12 h 02 min #60480mathieu.sadoulet
ParticipantBOnjour,
Vous trouver ci-joint le fichier PBI avec les données
J’ai mis en plus une partie du visuel souhaité pour comprendre ce que l’utilisateur peut saisir comme données.
J’ai aussi joint un fichier Excel avec des exemples de résultats.
En texte voici le résultat attendu
Durée construction (à faire apparaitre dans la carte du rapport) =
Temps de construction (BP) du niveau BP (saisie par utilisateur)
*
somme pour chaque niveau (saisie utilisateur) et le bâtiment (saisie utilisateur) de la durée construction correspondanteJ’espère avoir été clair
Merci de votre patience
Attachments:
You must be logged in to view attached files.19 janvier 2020 à 12 h 27 min #60484Sophie Marchand
ParticipantJe suis vraiment désolée mais je ne comprends pas plus.
Vous dites, quand le niveau du BP est 5, il faut faire
=0,86*(0,09097+0,14826)D’où viennnent ces 3 chiffres????
Comment puis-je les idenfifier dans votre table de données en fonction du chiffre 5?
19 janvier 2020 à 16 h 51 min #60502mathieu.sadoulet
ParticipantSi on prend l’exemple des données utilisateurs de la ligne que vous mentionnez soit
niveau du BP de 5
Batiment Fer
Niveau 6 et 7Le 0,86 = la valeur de “Temps de construction (BP)” pour le batiment BP et le niveau 5 (entouré sur la ligne jaune dans l’image)
les 0,09097 et 0,14826 ce sont les “durée construction” pour le batiment “Fer” et pour le niveau 6 pour le premeir chiffre et le niveau 7 pour le second (entouré sur les lignes vertes dans l’image)
Je vous joins une image de la base de donnée en format dans PowerBI (format différent dans le power query)
Attachments:
You must be logged in to view attached files.19 janvier 2020 à 18 h 11 min #60504Sophie Marchand
ParticipantBonjour,
Dans ce cas, votre modèle de données est complètement à retravailler.
Afin d’arriver au résultat que vous souhaitez, j’ai coupé ici les coins ronds. J’ai dupliqué votre table (ce qui n’est pas la meilleure pratique d’affaires à suivre). J’ai donc utilisé des segments liés à la première table et des segments liés à la deuxième table, ce qui me permet d’arriver au résultat.
Je vous conseillerais toutefois d’apprendre à bien modélisation et d’apprendre le langage DAX. Nos formations Excel – Introduction à Power Pivot et aux modèles de données et Introduction au langage DAX vous seraient très utiles.
Voici néanmoins une manière détournée d’arriver à votre résultat.
Sophie
Attachments:
You must be logged in to view attached files.19 janvier 2020 à 18 h 18 min #60506mathieu.sadoulet
ParticipantMerci, je pensais avoir bien modéliser les données mais visiblement non.
IL est vrai que j’apprends un peu en testant et qu’il est plus que compliqué via mon entreprise d’avoir des formations ne figurant pas dans le catalogue de formation officiel.
Je regarderais cela demain car ici en France il est minuit.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.