Ajout indicateur 1ère apparition

Accueil – Le CFO masqué Forums Power Query Ajout indicateur 1ère apparition

  • Ce sujet contient 4 réponses, 3 participants et a été mis à jour pour la dernière fois par Sogelinas, le il y a 4 années et 5 mois.
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Articles
  • #59326
    Sogelinas
    Participant

    Bonjour Sophie,

    Dans Power Query j’aimerais ajouter une colonne qui indique 1 lorsque le magasin a acheter un produit pour la première fois. Si le magasin a acheter le produit plusieurs fois j’aimerais voir 0 pour la 2ème, 3ème, 4ème fois… et ainsi de suite. Je n’ai pas mis de date d’achat dans l’exemple parce que l’ordre d’achat n’a pas d’importance, mais cette colonne est disponible si cela peut être utile.

    Note : J’ai bien trouvé une formule sur le web, mais je n’arrive pas à la faire fonctionner : https://community.powerbi.com/t5/Desktop/first-occurrence-of-a-value/m-p/447136#M206852

    • Ce sujet a été modifié le il y a 4 années et 5 mois par Sogelinas.
    • Ce sujet a été modifié le il y a 4 années et 5 mois par Sogelinas.
    Attachments:
    You must be logged in to view attached files.
    #59337
    Sophie Marchand
    Participant

    Bonjour,

    Le lien pointe vers une résolution en DAX et non en M. Il faudrait d’abord préciser si on veut travailler dans Power Query en M ou dans l’interface principale avec le langage DAX pour résoudre cette problématique.

    Merci.

    Sophie

    #59340
    Sogelinas
    Participant

    Bonjour Sophie,

    J’ai oublié de spécifier. Oui, je suis dans Power Query donc ce serait en langage M.

    Sophie

    #59344
    Stéphane Lorin
    Participant

    Bonjour

    Voici une solution par formule matricielle Excel =EQUIV([@Client]&[@Produit];[Client]&[Produit];0)=(LIGNE([@Client])-LIGNE(Tableau1[[#En-têtes];[Client]]))

    et une autre par Power Query :
    – ajout d’un index de ligne,
    – regroupement par [Client] et [Produit] pour récupérer le min de l’index
    – fusion des tables pour comparer l’index de la ligne en cours avec l’index min : si égal alors première apparition.

    Cordialement

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    #59347
    Sogelinas
    Participant

    Bonjour Stéphane,

    Merci pour la réponse (aussi pour Excel je le faisais autrement).

    Par contre je vais devoir fouiller dans mes notes de cours pour la fusion des tables, je ne suis pas certaine de la façon de procéder. J’ai finalement utilisé le début de la façon de faire décrite dans cet article :
    https://www.lecfomasque.com/en-reponse-a-une-question-sur-notre-forum-creer-une-liste-didentifiants-incrementes-a-chaque-changement-de-date/ et j’ai ajouté une colonne conditionnelle (1 si = 0 et 0 pour les autres valeurs). C’est moins élégant mais ça marche aussi.

    Bonne journée

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