Regrouper les données avec comme critères un second tableau

Bonjour a tous,

Pas évident de trouver un titre explicite...

J'ai découvert grâce a vous Power Query il y a peu.

Je sèche aujourd'hui sur un problème de regroupement de valeurs.

Dans le fichier joint, j'ai une feuille source de donnée avec date et produit.

Avec Power Query j'obtiens facilement le nombre de ligne par date et produit en regroupant par date puis produit.

Date examen    Vendu    Quantite
02/01/2019    Pomme de terre    2
03/01/2019    Haricots    4
03/01/2019    Choux Fleur    1
03/01/2019    Poireau    2
03/01/2019    Pomme de terre    1
04/01/2019    Poireau    3
04/01/2019    Pomme de terre    4
07/01/2019    Haricots    3
07/01/2019    Poireau    1
...

J'ai une autre feuille qui contient des plages de dates (périodes)

NomPeriode    DateDebut    DateFin
Annee    01/01/2019    31/12/2019
Periode A    01/02/2019    28/02/2019
Periode B    01/01/2019    15/03/2019
Semestre 2    01/07/2019    31/12/2019
Periode C    01/09/2019    25/10/2019

Je cherche maintenant a obtenir le tableau final en fonction de ces dates

Vendu    Annee    Periode A    Periode B    Semestre 2    Periode C
Pomme de terre    915                
Haricots    526                
Choux Fleur    153                
Poireau    214                
Banane    132                

J'avais pensé mettre une colonne calculée pour identifier la période a laquelle la ligne appartient mais certaines dates peuvent appartenir a plusieurs périodes.

Dans quelle direction puis-je chercher?

Bon, J'avance tout doucement.

J'arrive maintenant a obtenir une somme sur une période définie.

J'ai défini deux tableaux source et j'ai fait un Drill Down sur les valeurs pour aller les mettre dans Power Query

let
    Source = Excel.CurrentWorkbook(){[Name="ImportDonnees"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Vendu", type text}, {"Quantite", Int64.Type}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each [Date] >= DateDebut and [Date] <= DateFin),
    #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Vendu"}, {{"Count", each List.Sum([Quantite]), type number}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Periode", each Text.From(DateDebut) & "-" & Text.From(DateFin)),
    #"Reordered Columns" = Table.ReorderColumns(#"Added Custom",{"Periode", "Vendu", "Count"})
in
    #"Reordered Columns"
Date de Debut    Date de Fin        Periode    Vendu    Count
01/02/2019    30/04/2019        01/02/2019-30/04/2019    Haricots    135
            01/02/2019-30/04/2019    Banane    23
            01/02/2019-30/04/2019    Noix de coco    12
            01/02/2019-30/04/2019    Pomme de terre    238
            01/02/2019-30/04/2019    Abricots    47
            01/02/2019-30/04/2019    Ananas    21
            01/02/2019-30/04/2019    Choux Fleur    37

Prochaine étape, faire cela sur les autres périodes...

J'avance toujours...

J'obtiens maintenant le tableau désiré mais la méthode ne me plait pas trop.

Il faudrait surement faire autrement.

Pour chaque nouvelle période je suis obligé de faire deux nouvelles sources et une table de connexion.

Je regroupe les différentes requêtes et je pivote la colonne.

Le résultat (partiel) dans le fichier :

Bonjour,

Un exemple dans le fichier joint.

1 Table Données

1 Table Périodes

1 Table Final

A te relire.

Cdlt.

23orcad-v1.xlsx (48.17 Ko)

Merci beaucoup pour la technique.

Je n'avais pas du tout pensé a faire une liste des dates.

Je suis resté enfermé dans la vérification de la date par rapport aux deux bornes.

Je découvre du coup de nouvelles fonctions de Power Query

outside
Rechercher des sujets similaires à "regrouper donnees comme criteres second tableau"