Accueil – Le CFO masqué › Forums › Power Query › Supprimer ligne répétitive et non les doublons
Mots-clés : doublons, lignes répétitives
- Ce sujet contient 2 réponses, 3 participants et a été mis à jour pour la dernière fois par Stéphane Lorin, le il y a 4 années et 3 mois.
-
AuteurArticles
-
23 juillet 2020 à 9 h 33 min #71968sebastien.bertrandParticipant
Bonjour!
Je dois analyser les log d’une machine, une lecture des capteurs est réalisée toutes les 5 secondes.
L’objectif est pour une durée donnée, de savoir combien de temps le capteur était à « 1 »Par exemple
Ligne 1 : M1 / 2020-07-23 00 :00 :00 / 0
Ligne 2 : M1 / 2020-07-23 00 :00 :05 / 0
Ligne 3 : M1 / 2020-07-23 00 :00 :10 / 0
Ligne 4 : M1 / 2020-07-23 00 :00 :15 / 1
Ligne 5 : M1 / 2020-07-23 00 :00 :20 / 1
Ligne 6 : M1 / 2020-07-23 00 :00 :25 / 1
Ligne 7 : M1 / 2020-07-23 00 :00 :30 / 1
Ligne 8 : M1 / 2020-07-23 00 :00 :35 / 0
Ligne 9 : M1 / 2020-07-23 00 :00 :40 / 0En M, la première chose que j’essaie de faire est de garder seulement la première ligne du changement d’état, dons supprimer les lignes 2, 3, 5, 6, 7 et 9. Mais sans succès…
Par la suite, je pensais faire une formule DAX pour calculer la différence entre le MAX et le MIN, pour ainsi atteindre l’objectif.
Merci de votre aide!
23 juillet 2020 à 17 h 18 min #72047Sophie MarchandParticipantBonjour,
Je vous ai joint un fichier dans lequel j’ai complété la première étape que vous souhaitiez compléter. À noter que cette technique est enseignée dans notre formation Recettes magiques pour transformer vos données, juste ici: https://www.lecfomasque.com/cours/recettes-magiques-pour-transformer-vos-donnees/
Au plaisir,
Sophie
Attachments:
You must be logged in to view attached files.27 juillet 2020 à 10 h 43 min #72297Stéphane LorinParticipantBonjour
Je me permets de proposer une solution alternative qui ne compare pas les lignes successives entre-elles mais qui utilise une option de la fonction de regroupement Table.Group.Le principe est de regrouper les lignes sur les champs “Capteur” (M1 ou M2) et “Statut” (0 ou 1), de récupérer la date/heure minimum (pour le début) et le nombre de lignes (pour la durée)
A la main, dans la formule créée avec le menu “regroupement”, j’ajoute le mot clé “GroupKind.Local” pour spécifier que le regroupement ne sera pas sur la totalité de la table mais sur chaque groupe de lignes successives qui ont le même capteur et le même statut.
= Table.Group(#”Type modifié”, {“Capteur”, “Statut”}, {{“Début”, each List.Min([Date Heure]), type datetime}, {“Durée”, each Table.RowCount(_), type number}}, GroupKind.Local)
Je n’ai plus qu’à multiplier par 5 le nombre de lignes pour avoir la durée en secondes de chaque statut.
Un inconvénient est qu’on perd le petit engrenage pour modifier le regroupement
Cette option de la fonction Table.Group ne peut pas être utilisée à chaque fois que l’on veut comparer une ligne avec la précédente mais elle permet de simplifier certaines requêtes et elle est moins gourmande en mémoire que la technique des index décalés d’un.
Cordialement
Attachments:
You must be logged in to view attached files. -
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.