Comportement d'un slicer en Multi select

  • Comportement d'un slicer en Multi select

    Posté par Sophie sur 23 janvier 2025 à 8h31

    Bonjour,

    J’ai une table (qui peut être pivotée ou non en fonction de la solution possible), qui contient:
    un ID client, un attribut (environ 260 attributs différents) et la valeur de cette attribut:

    Mon objectif serait d’avoir une matrice voir une simple liste d’ID client qui serait filtrée en fonction de plusieurs attributs.

    Or actuellement ma solution me donne un “OR” dans mon slicer au lieu d’un “AND”.
    Par exemple ci dessous je sélectionne les ID client qui ont comme value IPA “et” VAU. Or ma matrice me donne les id clients qui ont l’un ou l’autre (sachant que ces deux values sont dans des attributs différents et que je ne peux avoir qu’une seule value sélectionnée pour chaque attribut par ID Client)

    Actuellement ma seule idée serait de dupliquer ma table autant de fois que je veux de combinaisons possible mais, d’une part, il y a déjà beaucoup d’enregistrements dans ma table (16.000 id clients avec chacun jusqu’à 255 Attributs), et si je veux combiner au plus finement possible, il me faudrait 255 copies de cette table et 255 slicers.

    Ou alors splitter ma table en autant de table que d’attributs (255 tables ne contenant chacune qu’un seul attribut), mais même problème…. le nombre de slicers à mettre à disposition
    Donc je me demande s’il existe un moyen de faire en sorte que mon slicer soit AND assez facilement, avec une mesure? (selectedvalue?)

    Le dernier souci étant aussi qu’il réduit ma matrice aux attributs sur lequel j’ai un filtre et masque les 250 autres colonnes (mais ça c’est pas encore le plus grave, je pense trouver facilemetn une solution si j’arrive déjà à combiner mes choix)

    Sophie a répondu Il y a 1 semaine, 1 jour 3 Membres · 7 Réponses
  • 7 Réponses
  • jean

    Membre
    25 janvier 2025 à 10h45

    Bonjour,

    Je suis débutant en powerbi (donc aucune prétention..) mais as-tu essayé de faire un slicer “attribute” et un autre slicer “value”, en autorisant la multiselection sur les deux slicer ? Si oui a tu le même phénomène ?

  • Sophie

    Membre
    27 janvier 2025 à 8h51

    salut je l’avais effectivement testé et cela fonctionne toujours en OR:

  • jean

    Membre
    27 janvier 2025 à 9h02

    Re,

    cette table est-elle en relation avec d’autres tables ? si oui à tu as regardé quel est le type de cardinalités (le problème se trouve peut-être ici) et si la direction du filtre et a double sens ou non:

    • Plusieurs à un,
    • Un à plusieurs,
    • Plusieurs a plusieurs

    • Cette réponse a été modifiée Il y a 1 semaine, 2 jours par  Jean.
  • Stef

    Membre
    27 janvier 2025 à 11h28

    Bonjour,

    A priori je ne vois que deux méthodes envisageables :

    • La solution la plus “simple” à configurer demeure souvent de pivoter la table pour faire 255 colonnes (une par attribut) et de poser 255 slicers (ou du moins ceux qu’on veut rendre filtrables).
    • La solution la plus “souple” (mais demandant un peu plus de DAX) est celle de la « table de pont + mesure » qui applique un ET sur toutes les paires sélectionnées, le tout restant dans une modélisation “unpivot” (table longue).

    À toi de voir, donc, si le pivot “géant” reste gérable dans ton contexte, ou si tu préfères la mécanique plus dynamique de la table “disconnected”. Dans tous les cas, Power BI n’a pas de « switch » natif pour passer un slicer en “AND” quand on est sur un même champ (Attribut, Valeur) ; il faut ruser avec l’une ou l’autre de ces approches.

  • Sophie

    Membre
    27 janvier 2025 à 11h52

    Merci, j’ai effectivement cette table en pivotée et dépivotée, mais les 255 slicers…. cela me fait un peu peur lol car je n’ai pas d’idée sur comment je pourrais les présenter de manière “lisible”

    Quant à la solution DAX, je préférerais mais je ne vois pas de quelle fonction tu parle

  • Stef

    Membre
    27 janvier 2025 à 15h51

    Je voulais d’abord savoir si la tonne de slicer te convenait avant de décrire la seconde méthode bien plus complexe…

    L’idée de cette seconde solution est de forcer un ET via une table de pont et une mesure.

    • La table de pont consiste à créer une table “disconnected” (non liée à la table des faits) dans laquelle chaque ligne représente un couple (Attribut, Valeur) et à afficher en slicer pour permettre de cocher plusieurs paires.
    • La mesure répond à la question « Est‐ce que l’ID en cours possède toutes les paires (Attribut, Valeur) actuellement cochées ? »

    Ensuite on place cette mesure en filtre visuel (=1) sur la matrice (ou la table) des ID clients.

    La structure possible d’une telle mesure serait la suivante :

    • On sélectionne dans la table de pont (non liée) une ou plusieurs paires (Attribut = Valeur).
    • Pour chaque ID de ta table de faits, on calcule le nombre de paires réellement présentes.
    • S’il matche toutes les paires la mesure renvoie 1.

    Tu te sens d’écrire cette mesure ?

  • Sophie

    Membre
    28 janvier 2025 à 8h31

    Bonjour,

    Merci pour ta réponse, je pense que cela est à ma portée en effet.

    je vais creuser ça dans la journée.

    Le concept de la table de pont est clair, la mesure globalement aussi.

    Je te tiens au courant

Connectez-vous pour répondre.