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