Créer une colonne index basée sur la valeur d’une autre colonne (id)

  • Créer une colonne index basée sur la valeur d’une autre colonne (id)

    Posté par Magalie sur 21 janvier 2025 à 10h17

    Bonjour,

    j’ai une demande et ne sais pas comment faire, je m’en remets à vous pour m’aider 🙂

    J’ai une colonne d’id de personnes, et j’aurais aimé créer une colonne d’index, mais par id.

    Exemple :

    Id 1 => 1

    Id 1 => 2

    id 1 => 3

    id 2=> 1

    id 2 => 2

    id 3 > 1

    id 4 => 1

    id 4 => 2 etc…

    Auriez-vous une méthode pour générer cela ?

    Merci

    tarik a répondu Il y a 2 semaines 3 Membres · 5 Réponses
  • 5 Réponses
  • Sophie

    Membre
    21 janvier 2025 à 11h01

    Bonjour,

    qu’est ce qui définit ta donné d’index?

    je suis un boulet, je comprends toujours en décalage ce que je vois.

    tu vas trier tes ID 1 par? date de création? autre?

  • Magalie

    Membre
    21 janvier 2025 à 13h09

    En gros j’ai des id client, et des experiences. pour chaque experience j’ai une ligne, et j’ai fait mon tri et filtre en amont, et avec ce résultat, j’aimerais créé mon index pour avoir un index par client. (je n’ai pas de dates pour toutes les lignes je ne peux donc pas définir avec ça)

    il faudrait que je puisse definir le numéro de chaque ligne id client – experience pour pouvoir avoir toutes les experiences 1, toutes les experiences 2…mais que dans chaque catégorie je n’ai pas de doublon client…

    je ne sais pas si ça semble plus clair ou plus compliqué 🙂

  • Sophie

    Membre
    21 janvier 2025 à 14h30

    Je connais la fonction de reset “HIGHESTPARENT” mais uniquement dans les visual calculations. Mais je continue de fouiller, peut-être un expert aura-t-il une idée entre temps

    Cet exemple semble fonctionner chez moi:

    https://community.fabric.microsoft.com/t5/Desktop/Reset-RANKX-when-two-values-change/td-p/2743793

    J’ai une table chez moi avec un Sales Order (ton ID client en gros), un Internal Char No. (qui pourrait correspondre à ton experience) et lorsque je change de sales order, l’index repart bien de 0 avec la colonne calculée:

    <div>
    <div>Rank with reset =</div>
    <div>VAR cur_SO= SO_Config[Sales Doc.]</div>
    <div>VAR tmp= FILTER(All(SO_Config),SO_Config[Sales Doc.]=cur_SO)</div>
    <div>RETURN</div>
    <div>RANKX(tmp,SO_Config[Internal char no.],,ASC,Dense)</div>
    </div>

    La faiblesse que je pourrais y voir:

    1. l’index est “fixe” si tu as un visuel où tu filtres il se peut que ton index passe de 1 à4 pour un même client (contrairement à une mesure où il pourrait se mettre à jour en temps réel), à voir si c’est bloquant.
    2. et je pense aussi que tes expériences identiques n’auront pas forcément le même index chez tous les clients (si certains client peuvent avoir plus ou moins d’expérience par exemple).
      1. Chez moi par exemple sur le client 100002403 mon “expérience” Z_AD_BLUE” a l’index 4. Mais si un autre client rajoute une expérience qui se calera avant “Z_AD_BLUE” (en ordre alphabétique), alors il se peut que Z_AD_BLUE chope l’index 5 pour ce client. Etc. Mais pareil, à voir si cela peut te poser problème, comme tu peux le voir dans mes données ici:

  • Magalie

    Membre
    21 janvier 2025 à 16h58

    Merci 🙂

  • tarik

    Membre
    22 janvier 2025 à 10h55

    Bonjour

    voila un script à adapter à votre table et à tester.

    let
    Source = Excel.Workbook(File.Contents(“C:\Users\XXXX\Desktop\test.xlsx”), null, true),
    Feuil1_Sheet = Source{[Item=”Feuil1″,Kind=”Sheet”]}[Data],
    #”Changed Type” = Table.TransformColumnTypes(Feuil1_Sheet,{{“Column1”, type text}, {“Column2”, type text}}),
    #”Promoted Headers” = Table.PromoteHeaders(#”Changed Type”, [PromoteAllScalars=true]),
    #”Changed Type1″ = Table.TransformColumnTypes(#”Promoted Headers”,{{“ID”, type text}, {“exper”, type text}}),
    #”Grouped Rows” = Table.Group(#”Changed Type1″, {“ID”}, {{“Zindex”, each _, type table [ID=nullable text, exper=nullable text]}}),
    #”Added Index” = Table.TransformColumns(
    #”Grouped Rows”,
    {
    {
    “Zindex”,
    each Table.AddIndexColumn(_, “Index”, 1, 1, Int64.Type),
    type table [Id=Int64.Type, exper=Text.Type, Index=Int64.Type]
    }
    }
    ),
    #”Expanded Zindex” = Table.ExpandTableColumn(#”Added Index”, “Zindex”, {“Id”, “exper”, “Index”}, {“Zindex.Id”, “Zindex.exper”, “Zindex.Index”})
    in
    #”Expanded Zindex”

    • Cette réponse a été modifiée Il y a 2 semaines par  tarik.
    • Cette réponse a été modifiée Il y a 2 semaines par  tarik.

Connectez-vous pour répondre.