Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Power Query Agreger les resultats de 2 colonnes

boza

XLDnaute Nouveau
Bonjour à toutes et tous,
J'ai beau chercher je ne trouve pas donc je me tourne une nouvelle fois sur la communauté.
J'ai un Tableau Excel avec X colonnes.
Tous les champs sont identiques sauf pour delivery.delivery.deliveryWindows.start et delivery.delivery.deliveryWindows.end.
Je ne dois pas avoir de lignes doublonnées sur le critère delivery.delivery.deterministicId. Il faut donc agréger les résultats delivery.delivery.deliveryWindows.start et delivery.delivery.deliveryWindows.end.
Pouvez vous m'aider svp?
Merci
 

Pièces jointes

  • agreg pwq.xlsx
    10.6 KB · Affichages: 4

JHA

XLDnaute Barbatruc
Bonjour à tous,

Pas certain d'avoir compris la demande, j'ai fusionné les deux colonnes avec Power Query.

Sinon, donne les résultats à obtenir.

JHA
 

Pièces jointes

  • agreg pwq.xlsx
    24.5 KB · Affichages: 2

boza

XLDnaute Nouveau
Bonjour à tous,

Pas certain d'avoir compris la demande, j'ai fusionné les deux colonnes avec Power Query.

Sinon, donne les résultats à obtenir.

JHA
Merci pour le résultat. Effectivement c'est mieux de mettre l'attendu.
Je vous le joins. base 1er onglet. Attendu en 2ème onglet
 

Pièces jointes

  • agreg pwq.xlsx
    12.7 KB · Affichages: 2

Cousinhub

XLDnaute Barbatruc
Bonjour,
Dans ton fichier, il n'y a que 2 sessions (1 le matin, 1 l'apm)
Est-ce que c'est figé, ou il peut y avoir plusieurs sessions?
Et est-ce que l'ajout de colonnes est imposé, ou on peut fusionner les différentes sessions sous la forme :
choix 1 : "hh:mm/hh:mm hh:mm/hh:mm" ou choix 2 : pareil, mais avec retour à la ligne
soit dans ton exemple
109:30/12:00 13:00/1500
209:30/12:00
13:00/1500
 

boza

XLDnaute Nouveau
Bonjour,
C'est figé sur 2 créneaux. Mais je peux avoir du 8h-9h et du 9h30-10h30 donc 2 matin. Le choix 1 est le mieux pour répondre a ta question.
Merci !
 

Cousinhub

XLDnaute Barbatruc
Re-,
Une version un peu plus propre...(mais toujours basée sur 2 sessions différentes...)
Et avec utilisation de plusieurs requêtes internes.
Bonne soirée
 

Pièces jointes

  • agreg pwq-3h.xlsx
    30.6 KB · Affichages: 2

mromain

XLDnaute Barbatruc
Bonjour à tous,

Ci-dessous une version retouchée de la proposition de @bhbh se passant des requêtes internes.
Récupérer les différentes valeurs de start et end se fait au niveau du regroupement des lignes avec les opérations Min et Max.

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    LignesGroupées = Table.Group(Source, {"delivery.delivery.id", "delivery.delivery.deterministicId", "delivery.delivery.tourId", "delivery.delivery.completedAt", "delivery.delivery.startedAt", "delivery.delivery.customer.id", "delivery.delivery.customer.number", "delivery.delivery.customer.name", "delivery.delivery.customer.homeStore", "delivery.delivery.unloadTime", "delivery.delivery.rank", "delivery.delivery.addressId", "delivery.delivery.status", "delivery.delivery.cancellationReason", "delivery.delivery.deliveryNumber", "delivery.delivery.skippedReason", "store_number", "routeName", "deliveryDate", "country", "dana_ingestion_timestamp", "PARTITIONTIME"}, {{"delivery.delivery.deliveryWindows.start.1", each List.Min([delivery.delivery.deliveryWindows.start]), type text}, {"delivery.delivery.deliveryWindows.start.2", each List.Max([delivery.delivery.deliveryWindows.start]), type text}, {"delivery.delivery.deliveryWindows.end.1", each List.Min([delivery.delivery.deliveryWindows.end]), type text}, {"delivery.delivery.deliveryWindows.end.2", each List.Max([delivery.delivery.deliveryWindows.end]), type text}}),
    ColonnesSélectionnées = Table.SelectColumns(LignesGroupées,{"delivery.delivery.id", "delivery.delivery.deterministicId", "delivery.delivery.tourId", "delivery.delivery.completedAt", "delivery.delivery.startedAt", "delivery.delivery.customer.id", "delivery.delivery.customer.number", "delivery.delivery.customer.name", "delivery.delivery.customer.homeStore", "delivery.delivery.deliveryWindows.start.1", "delivery.delivery.deliveryWindows.end.1", "delivery.delivery.deliveryWindows.start.2", "delivery.delivery.deliveryWindows.end.2", "delivery.delivery.unloadTime", "delivery.delivery.rank", "delivery.delivery.addressId", "delivery.delivery.status", "delivery.delivery.cancellationReason", "delivery.delivery.deliveryNumber", "delivery.delivery.skippedReason", "store_number", "routeName", "deliveryDate", "country", "dana_ingestion_timestamp", "PARTITIONTIME"})
in
    ColonnesSélectionnées

Sur l'exemple fourni, cette requête renvoie le même résultat que la requête de bhbh proposée au post #10.

A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…