Utilisation valeur saisie par l'utilisation

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 4 années et 2 mois.
15 sujets de 1 à 15 (sur un total de 15)
  • Auteur
    Articles
  • #60458
    mathieu.sadoulet
    Participant

    Bonjour,

    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

    #60459
    Sophie Marchand
    Participant

    Bonjour,

    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

    #60463
    mathieu.sadoulet
    Participant

    Merci 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

    • Cette réponse a été modifiée le il y a 4 années et 2 mois par mathieu.sadoulet.
    Attachments:
    You must be logged in to view attached files.
    #60466
    Sophie Marchand
    Participant

    Bonjour,

    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

    #60467
    mathieu.sadoulet
    Participant

    Merci,

    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

    • Cette réponse a été modifiée le il y a 4 années et 2 mois par mathieu.sadoulet.
    #60469
    Sophie Marchand
    Participant

    Bonjour,

    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

    #60470
    mathieu.sadoulet
    Participant

    POur 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”

    • Cette réponse a été modifiée le il y a 4 années et 2 mois par mathieu.sadoulet.
    • Cette réponse a été modifiée le il y a 4 années et 2 mois par mathieu.sadoulet.
    #60473
    Sophie Marchand
    Participant

    Bonjour,

    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

    #60474
    mathieu.sadoulet
    Participant

    BOnjour,

    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.
    #60476
    Sophie Marchand
    Participant

    Bonjour,

    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’usager

    Ne fournissez pas d’autres epxlications. Fournissez seulement les réponses à ces 3 points et je vous fournirai la bonne mesure.

    Merci.

    Sophie

    #60480
    mathieu.sadoulet
    Participant

    BOnjour,

    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 correspondante

    J’espère avoir été clair

    Merci de votre patience

    • Cette réponse a été modifiée le il y a 4 années et 2 mois par mathieu.sadoulet.
    Attachments:
    You must be logged in to view attached files.
    #60484
    Sophie Marchand
    Participant

    Je 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?

    #60502
    mathieu.sadoulet
    Participant

    Si 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 7

    Le 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.
    #60504
    Sophie Marchand
    Participant

    Bonjour,

    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.

    Liste des formations offertes

    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.
    #60506
    mathieu.sadoulet
    Participant

    Merci, 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.

15 sujets de 1 à 15 (sur un total de 15)
  • Vous devez être connecté pour répondre à ce sujet.