Power query nombre de colonne par rapport à un critere

Résolu
keshia21 Messages postés 166 Date d'inscription jeudi 12 juillet 2018 Statut Membre Dernière intervention 8 septembre 2024 - 5 juil. 2024 à 22:54
cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 - 11 juil. 2024 à 08:55

Bonjour ,

Je voulais savoir si dans Power query il etait possible de compter le nombre de colonne d'aprés un critere .

J'ai un tableau avec 107 colonnes et je voudrais compter le nombre de colonne qui commencent par COMP_

Merci

Bonne soirée

Keshia

A voir également:

11 réponses

cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 342
6 juil. 2024 à 11:11

Bonjour,

Par exemple, comme ceci :

NbTit = List.Count(List.Select(Table.ColumnNames(Source), each Text.StartsWith(_,"COMP_")))

Bonne journée


1
keshia21 Messages postés 166 Date d'inscription jeudi 12 juillet 2018 Statut Membre Dernière intervention 8 septembre 2024 3
9 juil. 2024 à 00:25

Bonjour Cousinhub29

J'aurais s'il vous plait encore besoin de votre aide.

Avec la formule j'ai creer une table que j'ai appellé  #"Critére (Qualité Lvraison)" et dans une colonne personnalisée  je voulais utiliser le chiffre de cette table pour diviser  le resultat de chaque ligne de la  colonne [Total Critere Qualité Livraison]  de mon tableau.

Comme ceci

=[Total Critere Qualité Livraison] / #"Critére (Qualité Lvraison)"

Mais cela ne fonctionne pas  j'ai toujours ce message d'érreur.

Expression.Error : Il n'y avait pas assez d'éléments dans l'énumération pour terminer l'opération.
Détails :
    [Table]

Pouvez-vous s'il vous plait m'aider.

Merci 

Bonne soirée

Keshia

0
cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 342
11 juil. 2024 à 08:55

Bonjour,

Avec Power Query, dès qu'on fait référence à une Table, il faut indiquer le nom de l'étape comprenant cette table.

Dans mon code, la 1ère étape est "Source", la 2ème "TypeDate"

Cette 2ème étape, je l'ai renommé à la main (clic droit dans le bandeau de droite, "Renommer", afin de remplacer le nom donné automatiquement par PQ

Dans la commande :

AjtRec = [Crit_Comp = List.Count(List.Select(Table.ColumnNames(TypeDate), each Text.StartsWith(_,"COMP_"))),
          Crit_QLT = List.Count(List.Select(Table.ColumnNames(TypeDate), each Text.EndsWith(_,"_QLT"))),
          Crit_DOC = List.Count(List.Select(Table.ColumnNames(TypeDate), each Text.EndsWith(_,"_DOC")))],

Tu peux donc remplacer tous les "TypeDate" par "Source", car cette étape comporte également les mêmes colonnes que l'étape suivante

Cette commande te permet d'obtenir le nombre de colonnes répondant à tes critères, tu peux en rajouter autant que tu veux.

Bonne journée


1
keshia21 Messages postés 166 Date d'inscription jeudi 12 juillet 2018 Statut Membre Dernière intervention 8 septembre 2024 3
7 juil. 2024 à 13:54

Bonjour Cousinhub29

Merci Beaucoup pour la solution .

C'est exactement ce que je souhaitais .

Tres bon Dimanche 

Keshia

0
cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 342
Modifié le 9 juil. 2024 à 10:20

Bonjour,

Je ne comprends pas trop :

"j'ai creer une table"

Tu veux dire, une variable?

Sinon, sans filet, ceci ne fonctionnerait t'il pas?

=[Total Critere Qualité Livraison] / List.Count(List.Select(Table.ColumnNames(Source), each Text.StartsWith(_,"COMP_")))

Attention à bien spécifier l'étape précédente (ici, c'est "Source", mais dans ta requête???)

Si ça ne fonctionne pas, un petit fichier exemple?

Bon courage


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
keshia21 Messages postés 166 Date d'inscription jeudi 12 juillet 2018 Statut Membre Dernière intervention 8 septembre 2024 3
9 juil. 2024 à 14:04

 Bonjour Cousinhub29

Merci pour votre réponse.

Même en divisant par la formule j'ai un message d'erreur.

Par la même occasion j'en profite pour vous demander quelle formule utiliser pour faire la somme de colonne en fonction d'un critere .

exemple je souhaiterais faire la somme de toute les colonnes que finissent par _DOC.

Ci-joint un fichier

https://www.cjoint.com/c/NGjlHmxTEPp

Merci pour votre patience et votre aide

Bonne journée

Keshia

0
cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 342
9 juil. 2024 à 14:41

Re-,

J'essaye d'analyser ton fichier, et tu es en train de faire une sorte de self-referencement, d'où les messages d'erreur "erreur cyclique".

De ce que je comprends, ton tableau de données est dans l'onglet "Feuil1", mais tu y rajoutes des colonnes de calcul (mois, année, trimestre, année fiscale...)

Comment est vraiment structuré ton tableau de données?

Quelles colonnes sont présentes dans le tableau initial?

Je ne vais pas rectifier tes codes, mais rajouter les miens, ainsi tu pourras analyser le nouveau code.

Je vais commencer en démarrant sur un Tableau avec la date de livraison, le magasin, et les 6 colonnes commençant par "Comp_"

Dans l'attente d'une confirmation, ou infirmation de ta part.


0
cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 342
9 juil. 2024 à 15:50

Re,

Voici déjà un premier jet...

Comme je n'ai pas bien compris le calcul des pourcentages, je n'ai pas encore réalisé ces opérations.

Mais tu me dis déjà si le projet est sur la bonne voie...

https://www.cjoint.com/c/NGjnYIq748W


0
keshia21 Messages postés 166 Date d'inscription jeudi 12 juillet 2018 Statut Membre Dernière intervention 8 septembre 2024 3
9 juil. 2024 à 17:12

Bonjour Cousinhub29

Merci beaucoup c'est exactement la formule que je cherchais. list.sum ????

Pour les pourcentages je souhaiterais diviser chaque ligne de total par son nombre de critère . 

Toutes les lignes de la colonne total DOC par 2.

Toutes les lignes de la colonne Total QLT par 3

C'est pour cela que j'ai créer les 3 petites tables

Merci pour votre aide.

Bonne journée

Keshia

0
cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 342
9 juil. 2024 à 17:29

Re-,

Pour moi, ce calcul ne donne pas un pourcentage...

Avec l'ajout d'une colonne personnalisée (après calculDOC, puis après calculQLT), cette formule devrait le faire :

 = Table.AddColumn(CalculDOC, "Part DOC", each [Total_DOC]/#"Critere DOC")

0
keshia21 Messages postés 166 Date d'inscription jeudi 12 juillet 2018 Statut Membre Dernière intervention 8 septembre 2024 3
9 juil. 2024 à 18:35

Bonjour Cousinhub29

oui vous avez raison.

En faite le resultat du calcul ne donne pas un pourcentage car le nombre de critére dans l'éxemple est trop bas. 

Alors sinon comme je n'y arrive pas avec la formule

= Table.AddColumn(CalculDOC, "Part DOC", each [Total_DOC]/#"Critere DOC")

Serait-il possible d'ajouter en nouvelle colonne le chiffre de ma table  #"Critere Doc" dans mon tableau pour que je puisse faire une operation entre 2 colonnes.

Ce serait plus simple pour moi.

Merci Beaucoup 

Bonne soirée 

Keshia

0
cousinhub29 Messages postés 941 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 4 octobre 2024 342
9 juil. 2024 à 18:53

Re-,

Je m'étais aperçu d'une erreur dans la logique.

En effet, dans ma réponse 9, j'utilise un critère calculé sur la base de TON tableau...

Et que dans ma requête, je nomme les différentes colonnes ajoutées par Total_DOC..., le dénombrement doit donc se faire en tout début de requête.

J'ai modifié le fichier afin de calculer ces données juste après la modification du typage en date.

Et j'utilise ces nouveaux critères dans les calculs (que je nomme Par COMP, Par DOC et Par QLT)

https://www.cjoint.com/c/NGjq1y0vd1W


0
keshia21 Messages postés 166 Date d'inscription jeudi 12 juillet 2018 Statut Membre Dernière intervention 8 septembre 2024 3
10 juil. 2024 à 22:10

Bonsoir Cousinhub29

Merci pour le fichier .

Depuis hier j'essaye de comprendre comment vous avez fais La ligne AjtRec dans les étapes de la requette mais sans success. Et comme dans mon fichier origine je n'ai pas l'étape TypeDate cela ne fonctionne pas même en copiant la formule.

Il me mets Record puis aucune colonne trouvée. ????

Ce n'est pas grave je vais directement diviser par le chiffre .

Mais merci pour toutes les autres formules qui fonctionnent tres bien.

Bonne soirée

Keshia

0