Microsoft 365 Histogramme

jlbcall

XLDnaute Occasionnel
Bonjour à toutes et à tous,


Je cherche une solution afin de représenter sur une journée de 24h, le nombre de véhicule qui circulent en simultanée dans une ville, un secteur.
Le but et de voir les pointes du nombre de véhicules, et à chaque minutes connaitre le nombre réel de Véhicules.
Je ne voudrais pas de macro, ni trop de formule.
Est-il possible d'utiliser Power Query, Pivot.....
Les bases de données peuvent être énorme et je ne peux pas trop rajouté de données.
Une véhicule roule sur un secteur de 5h00 à 7h00 par exemple et vient se rajouté à celui qui roule depuis 4h00 à 10h00 mais à 7h00 il ne m'en reerait donc + qu'un.

Merci d'avance poru m'éclairer sur ce qu'il faudrait faire, bonne soirée
 

Pièces jointes

  • TEST.xlsx
    452.4 KB · Affichages: 5

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

J'avais commencé un truc sur votre autre fil.
Difficile avec autant de données à faire une représentation efficace.
Voyez dans le classeur joint, vous avez une liste à la minute des voitures (nombre et nom) en service à la minute, si vous descendez la liste vous verrez facilement quand il y a le plus ou le moins de voitures.

Cordialement
 

Pièces jointes

  • PQ-jlbcall.xlsx
    248.9 KB · Affichages: 2

jlbcall

XLDnaute Occasionnel
Bonjour,

J'avais commencé un truc sur votre autre fil.
Difficile avec autant de données à faire une représentation efficace.
Voyez dans le classeur joint, vous avez une liste à la minute des voitures (nombre et nom) en service à la minute, si vous descendez la liste vous verrez facilement quand il y a le plus ou le moins de voitures.

Cordialement
Merci Beaucoup Hasco c'est vraiment cette représentation que je souhaitais une question pourquoi sur l'onglet Minutes exemple à 4h50 le code du véhicule BAU-2 est en doublons on retrouve ces doublons apparemment à chaque fois qu'une véhicule nouveau est comptabilisé.
Merci pour votre aide bonne journée
 

jlbcall

XLDnaute Occasionnel
wouah alors là merci c'est top, si je peux c'est possible de m'expliquer comment tu fait je vois::
Une Requêtre Classeur comment la faites vous
Une second que je comprends pas
Une 3 -ème requête qui est une fusion entre mes données et ???
En quelques lignes est il possible d'avoir une procédure.

Merci encore car c'est top
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Lorsqu'on 'interroge un classeur par power query, il faut s'attendre à ce qu'il y ait plus d'une requête sur le même classeur. C'est pourquoi je fait une requête que je nomme 'Classeur' qui me liste le contenu classeur et que mes autres requêtes peuvent prendre comme source. Je fais souvent la même chose pour les sources multi-table. Cela permet de n'interroger la source qu'une seule fois.

Dans le cas de votre fichier, la requête Classeur n'a qu'une ligne :
= Excel.CurrentWorkbook()
Elle pourrait en avoir plusieurs au cas où Filtres, tris, et/ou pré-transformations diverses seraient nécessaires.

La requête 'fnParamètreParNom' :
= (NomParamètre as text) => Classeur{[Name="Paramètres"]}[Content]{[Column1=NomParamètre]}[Column2]
permet de renvoyer par son nom la valeur d'un paramètre de la plage Feuil1!B1:C2, nommée 'Paramètres'.
Comme cette plage nommée n'a pas de nom de colonne, PQ les nomme ici automatiquement en interne en 'Colonne1' à 'Colonne2'.
Elle sert comme raccourci d'écriture dans la requête 'VoitureParMinute' pour la ligne qui filtre par Ville et par Code jour :
= Table.SelectRows(Source, each ([Ville] = ParamètreParNom("Ville")) and ([Code Jour] = ParamètreParNom("Code Jour")) and ([Distance] > 0))
Est plus lisible et compréhensible (à mon sens) que
= Table.SelectRows(Source, each ([Ville] = Classeur{[Name="Paramètres"]}[Content]{[Column1="Ville"]}[Column2]) and ([Code Jour] = Classeur{[Name="Paramètres"]}[Content]{[Column1="Code Jour"]}[Column2]) and ([Distance] > 0))

La requête 'VoitureParMinute' réalise :
1 - Filtrage des données
2 - Création pour chaque ligne d'une liste de 'minutes' entre l'heure de début et de fin, puis dévelloppement de ces minutes sur de nouvelle lignes
3 - Regroupement des données sur la colonne "Heures" que j'aurai du appeler 'Minutes' avec calcul du nombre de voitures et création de la liste des voiture.

Pour le reste, il va falloir que vous étudiez chaque ligne et pratiquiez Power Query...

Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
+Certains véhicules disparaissent alors qu'ils roulents Exeple le BAU-1 5h09 n'est plus dans la liste alors qu'il roule entre 4:36 et 12:06

Re, c'est là où je n'ai pas su répondre à votre demande du post#1 ne sachant pas sur quelle base vous affirmez cela car dans les donnée BAU-1 ne roule pas sans interruption de 4:36 à 12:06. Par exemple
à la ligne 2 il commence à 4:40 et finit à 5:08
à la ligne 13 il finit à 11:23 pour reprendre à la ligne 14 à 11:35 ???

Comment déterminez-vous qu'il a roulé de 4:36 à 12:06 et pas à 20:40 si on prend la journée ????



Cordialement
 
Dernière édition:

jlbcall

XLDnaute Occasionnel
Re,

Lorsqu'on 'interroge un classeur par power query, il faut s'attendre à ce qu'il y ait plus d'une requête sur le même classeur. C'est pourquoi je fait une requête que je nomme 'Classeur' qui me liste le contenu classeur et que mes autres requêtes peuvent prendre comme source. Je fais souvent la même chose pour les sources multi-table. Cela permet de n'interroger la source qu'une seule fois.

Dans le cas de votre fichier, la requête Classeur n'a qu'une ligne :

Elle pourrait en avoir plusieurs au cas où Filtres, tris, et/ou pré-transformations diverses seraient nécessaires.

La requête 'fnParamètreParNom' :

permet de renvoyer par son nom la valeur d'un paramètre de la plage Feuil1!B1:C2, nommée 'Paramètres'.
Comme cette plage nommée n'a pas de nom de colonne, PQ les nomme ici automatiquement en interne en 'Colonne1' à 'Colonne2'.
Elle sert comme raccourci d'écriture dans la requête 'VoitureParMinute' pour la ligne qui filtre par Ville et par Code jour :

Est plus lisible et compréhensible (à mon sens) que


La requête 'VoitureParMinute' réalise :
1 - Filtrage des données
2 - Création pour chaque ligne d'une liste de 'minutes' entre l'heure de début et de fin, puis dévelloppement de ces minutes sur de nouvelle lignes
3 - Regroupement des données sur la colonne "Heures" que j'aurai du appeler 'Minutes' avec calcul du nombre de voitures et création de la liste des voiture.

Pour le reste, il va falloir que vous étudiez chaque ligne et pratiquiez Power Query...

Cordialement
 

jlbcall

XLDnaute Occasionnel
Merci pour tout je vais essayé de m'approprier ce fichier
Re, c'est là où je n'ai pas su répondre à votre demande du post#1 ne sachant pas sur quelle base vous affirmez cela car dans les donnée BAU-1 ne roule pas sans interruption de 4:36 à 12:06. Par exemple
à la ligne 2 il commence à 4:40 et finit à 5:08
à la ligne 13 il finit à 11:23 pour reprendre à la ligne 14 à 11:35 ???

Comment déterminez-vous qu'il a roulé de 4:36 à 12:06 et pas à 20:40 si on prend la journée ????



Cordialement
Re,

Oui alors ce qui détermine la période ou le véhicule roule c'est les colonnes Heure debut voit et Heure fin voit
EX BAU-1 roule de 4h36 à 12h06 puis par exemple se stationne entre 12:06 et 12:36 pour reprendre de 12h36 à 18h26, c'est les colonne J et k qui détermine les plages horaires ou le véhicule circule mais il peut s'arrêter par moment pour un stationnement ou autre.
J'espère que c'est clair, Merci
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Des fois je me demande..... mais comme vous aviez coloré la première 'Heure début' et la dernière 'Heure fin', je n'avais pas regardé plus loin, par manque de temps :rolleyes:

Voilà qui est corrigé dans la requête, qui s'en trouve simplifiée.

Vous ne pourrez pas faire l'étape 'Lignes groupées' de la requête 'VoituresParMinute' par l'interface utilisateur, car je l'ai modifiée par la barre de formule de power query.

C'est pour cette raison que vous verrez dans une requête nommée : VoituresParMinute (2) (non chargée sur feuille) le même résultat par l'interface utilisateur, obligeant à deux étapes supplémentaires mais peut-être plus facile pour vous.

Petite question de curiosité personnelle :
Pourriez-vous s'il vous plaît me donner votre base de calcul des colonnes 'Heure début -Voit' et 'Heure fin -Voit' ?

P.S. j'ai brièvement commenté chaque étape de la requête. Laissez traîner votre curseur sur leur nom et une info bulle apparaîtra.

Cordialement
 

Pièces jointes

  • PQ-jlbcall(2).xlsx
    242.7 KB · Affichages: 6

jlbcall

XLDnaute Occasionnel
Bonjour,

La base de calcul pour les heures début -voit et fin voit se fait en fonction de la colonne D pour le début et colonne F pour heures de fin .
On prend donc le minimum de la voiture colonne D et le maxi de la colonne F
Exemple:
BAU-1 commence à 4h36 enchaine des circuits pour finir un première fois à 12h06.
Elle refait ensuite des circuits entre 12h36 et 18h26
En espérant avoir répondu à votre question.
Et encore merci pour votre aide et votre temps passé pour trouver cette solution
Je vous souhaite une excellente journée
Et si besoin d'autre chose n'hésitez pas
 

jlbcall

XLDnaute Occasionnel
Re
Encore moi
Comment créer vous la table liste c'est une fusion entre deux tables, je débute dans Power
+
Pour bien comprendre cette formule vous prenez l'heure début voiture et la durée que vous * par 60+1 (effet de bord?) et que signifie duration (0.0.1.0)

List.Times([#"Heure début -Voit"], Duration.TotalHours([#"Heure fin -Voit"]-[#"Heure début -Voit"])*60+1,#duration(0,0,1,0))
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 083
Messages
2 085 187
Membres
102 809
dernier inscrit
Sandrine83