Optimisation d’une étape très longue

Accueil – Le CFO masqué Forums Power Query Optimisation d’une étape très longue

Mots-clés : 

  • Ce sujet contient 1 réponse, 2 participants et a été mis à jour pour la dernière fois par Stéphane Lorin, le il y a 1 année et 2 mois.
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Articles
  • #130247
    philippe.morel.35
    Participant

    Bonjour,
    J’ai besoin de connaître le nombre d’enregistrements d’une table qui :
    contient notamment une colonne [COUNTRY], et plusieurs colonnes [A_nomProduit], et [C_nomProduit] ou nomProduit est un élément d’une liste ListProdNoSH
    ET vérifient les conditions suivantes :
    la valeur de chaque ligne dans la colonne A_nomProduit = 2 et toutes les valeurs dans la colonne C_nomProduit sont égales à 0
    Pour simplifier le problème, j’ai créé plusieurs colonnes [A2C0_nomProduit] dont les valeurs sont 1 si [A_nomProduit]=2 et [C_nomProduit]=0 (étape AddADV2C0)
    AddADV2C0 =
    List.Accumulate(ListProdNoSH,DevAddADV,(current_table, new_name) =>
    Table.AddColumn(current_table, “A2C0_” &new_name, each
    if (Text.From(Record.Field(_,”C_”&new_name))=”0″ and
    Text.From(Record.Field(_,”A_”&new_name))=”2″) then 1 else 0)),

    Puis j’ai créé des colonnes [ErrA2C0_nomProduit] pour compter pour chaque ligne le nombre de [A2C0_nomProduit] = 1 pour chaque [COUNTRY] et nomProduit donné.
    AddErrA2C0ProdName = List.Accumulate(
    ListProdNoSH,
    AddADV2C0,
    (table, prod) =>
    let
    countMatchingRows = Table.AddColumn(table, “ErrA2C0_” & prod, each
    let
    currentCountry = [C_COUNTRY], //Record.Field(_,”C_COUNTRY”),
    countErr = Table.RowCount(Table.SelectRows(table,
    each ([C_COUNTRY] = currentCountry and
    Record.Field(_,”A2C0_”&prod) = 1)
    ))
    in
    countErr
    )
    in
    countMatchingRows
    ),
    Cela fonctionne MAIS devient d’une lenteur exaspérante dès que je l’applique à la totalité de ma table (~1500 lignes et 9 produits), que ce soit sous Power Query Editor mais hélas aussi en actualisation de ma requête
    Je serais très reconnaissant si quelqu’un pouvait m’expliquer une meilleure (plus efficace) façon de procéder
    Cordialement

    #130357
    Stéphane Lorin
    Participant

    Bonjour
    Il est difficile de vous aider avec uniquement vos formules lorsqu’on n’a pas la structure du fichier.
    Le mieux serait de fournir un fichier Excel “modèle” avec vos colonnes et quelques lignes anonymisées + votre requête actuelle.
    Merci

    Stéphane

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