XL 2019 Power Query - Repérer lignes en double

Flx1er

XLDnaute Occasionnel
Bonjour,
J'ai un problème que je n'arrive pas à solutionner dans Power Query :
Je désire repérer des lignes qui sont en doublons.
En passant par les formules, aucun souci. Mais je souhaite utiliser la puissance de power query pour effectuer ce travail.

En exemple, le fichier "Repérer ligne en double" pose la problématique.
Sur l'onglet DATA, se trouve les données (colonne A à H) et en colonne M, se trouve la formule permettant de connaître les lignes en doubles (ou plus).
En entrant dans l'éditeur de Power Query, l'étape "Mettre en évidence les lignes dont IPP est présent plusieurs fois ?" a été ajoutée.
Pour déterminer qu'une ligne est en doublon (ou plus) se situe au niveau de la colonne IPP :
Si plusieurs colonnes ont le même IPP alors inscrire dans la colonne "Ligne en double" le tag "Oui" sinon "Non".

En vous remerciant par avance de votre et du temps passé pour réssoudre mon problème
Cordialement
 

Pièces jointes

  • Repérer ligne en double.xlsx
    24.4 KB · Affichages: 8
Solution
Bonjour,

Vous pouvez le faire dans la barre de formule également. Ajouter une étape en cliquant sur Fx (de la barre de formule) une étape personnalisée se créera, reprenant le nom de l'étape précédente.

Mais dans le fichier ci-joint je le fais pas l'interface (voir les requêtes 'Tableau1 (2)' et 'Tableau1 (3)' ).
Dans Tableau1 (2) une fois l'étape "Data développé" réalisée, sélectionner la colonne 'Ligne en double' puis cliquer sur 'Transformer/Colonne Texte/Format/Majuscule' (ou minuscule).

Cela va produire l' "ossature" de la fonction dont nous avons besoin et remplir votre colonne par des erreurs, ce qui est normal vu que nous cherchons à mettre des numériques en majuscule.

Dans la barre de formule de pq vous devez avoir quelque...

Flx1er

XLDnaute Occasionnel
Bonjour,

En groupant sur IPP pour compter les lignes de chaque groupe, puis dévelloper.
Voir fichier joint.

Cordialement
Merci Hasco pour votre solution.
Cela répond à mon besoin.

Dernière question :
Je ne trouve pas dans les différents menus que propose power query la transformation d'une colonne (cf Table.TransformColumns( #"Datas développé",{{"Ligne en double", each if _ >1 then "Oui" else "Non"}})).
Le seul endroit ou je trouve "transformer" est dans un menu contextuel (clic droit sur une colonne).

pour réussir cette transformation, j'ai "insérer l'étape d'après" et à l'aide de l'éditeur avancée insérer la commande : Table.TransformColumns( #"Datas développé",{{"Ligne en double", each if _ >1 then "Oui" else "Non"}})
Y a-t-il une autre solution ?

En vous remerciant
Cordialement
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Vous pouvez le faire dans la barre de formule également. Ajouter une étape en cliquant sur Fx (de la barre de formule) une étape personnalisée se créera, reprenant le nom de l'étape précédente.

Mais dans le fichier ci-joint je le fais pas l'interface (voir les requêtes 'Tableau1 (2)' et 'Tableau1 (3)' ).
Dans Tableau1 (2) une fois l'étape "Data développé" réalisée, sélectionner la colonne 'Ligne en double' puis cliquer sur 'Transformer/Colonne Texte/Format/Majuscule' (ou minuscule).

Cela va produire l' "ossature" de la fonction dont nous avons besoin et remplir votre colonne par des erreurs, ce qui est normal vu que nous cherchons à mettre des numériques en majuscule.

Dans la barre de formule de pq vous devez avoir quelque chose comme ça :
= Table.TransformColumns(#"Datas développé",{{"Ligne en double", Text.Upper, type text}})
f
Maintenant regardez la même étape dans la requête Tableau1 (3), vous avez dans la barre de formule :
= Table.TransformColumns(#"Datas développé",{{"Ligne en double", each if _ > 1 then "Oui" else "Non", type text}})
J'ai simplement remplacé le deuxième argument de la fonction (Text.Upper) par une fonction conditionnelle qui va scruter chaque (each) valeur et opérer le remplacement en fonction de sa valeur. L'underscore est comme une variable qui représente l'item parcouru.

Bien sûr tout ceci peut se faire dans la même requête, je l'ai fait sur deux requêtes pour que vous voyez les résultats de l'interface puis personnalisés.

Si vous voulez en savoir plus sur les fonctions du langage M (langage de pq) et bien que parfois absconce, l'aide microsoft peut vous aider :

Cordialement
 

Pièces jointes

  • Repérer ligne en double.xlsx
    33.2 KB · Affichages: 16

Flx1er

XLDnaute Occasionnel
Bonjour,

Vous pouvez le faire dans la barre de formule également. Ajouter une étape en cliquant sur Fx (de la barre de formule) une étape personnalisée se créera, reprenant le nom de l'étape précédente.

Mais dans le fichier ci-joint je le fais pas l'interface (voir les requêtes 'Tableau1 (2)' et 'Tableau1 (3)' ).
Dans Tableau1 (2) une fois l'étape "Data développé" réalisée, sélectionner la colonne 'Ligne en double' puis cliquer sur 'Transformer/Colonne Texte/Format/Majuscule' (ou minuscule).

Cela va produire l' "ossature" de la fonction dont nous avons besoin et remplir votre colonne par des erreurs, ce qui est normal vu que nous cherchons à mettre des numériques en majuscule.

Dans la barre de formule de pq vous devez avoir quelque chose comme ça :

f
Maintenant regardez la même étape dans la requête Tableau1 (3), vous avez dans la barre de formule :

J'ai simplement remplacé le deuxième argument de la fonction (Text.Upper) par une fonction conditionnelle qui va scruter chaque (each) valeur et opérer le remplacement en fonction de sa valeur. L'underscore est comme une variable qui représente l'item parcouru.

Bien sûr tout ceci peut se faire dans la même requête, je l'ai fait sur deux requêtes pour que vous voyez les résultats de l'interface puis personnalisés.

Si vous voulez en savoir plus sur les fonctions du langage M (langage de pq) et bien que parfois absconce, l'aide microsoft peut vous aider :


Cordialement
Super,
Je vous remercie pour la méthode.
Bonne soirée
Cordialement
 

Discussions similaires

Réponses
10
Affichages
184
Réponses
13
Affichages
474

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 842
dernier inscrit
seb0390