Graphique d'interpretation de chronometrage.

Fermé
Migou77 Messages postés 6 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 27 janvier 2016 - 13 janv. 2016 à 00:19
Migou77 Messages postés 6 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 27 janvier 2016 - 27 janv. 2016 à 18:30
Bonjour à tous,

Je gère l'organisation d'un 24h VTT.

Nous captons les passages des concurrents via une puce électronique et un logiciel dédié.
Malheureusement, par moment, certaines puces ne sont pas captées. Et du coup, il manque des tours à certaines équipes, ce qui fausse le classement.

Le logiciel est capable d'exporter un fichier Excel régulièrement et de façon automatique.

Voici ce qu'il fournit: https://www.cjoint.com/c/FAmwUDd0PrR

Mon idée était de faire, sous excel, un graphique reprenant l'ensemble des données de passage, en temps réel. On détecterai une anomalie si la courbe fait un pic

un exemple simpliste: https://www.cjoint.com/c/FAmxcAnoHAR

Les problématiques:

il faut partir d'un fichier qui importe automatiquement le fichier qui sera rafraichi régulièrement par le logiciel de chronométrage mais du coup, la mise en place de cet import automatique fausse de nombreuse cellules et indirectement les formules que je tente...

J'ai tenté de nombreuses formules dont une qui me paressait intéressante:
https://forums.commentcamarche.net/forum/affich-27231767-extraction-de-donnees-excel

mais l'import la fausse alors que ça marche dans le fichier source (j'étais prêt à faire un onglet par équipe si besoin)

Je parle d'onglet par équipe car, le nerf de la guerre est également là, il faut que l'on trie d'abord les données pour chaque équipe et dans un ordre chronologique afin de pouvoir réaliser le graphique.

Mes compétences sont un peu dépassées, avez vous des idées?
merci


A voir également:

4 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
Modifié par JvDo le 14/01/2016 à 02:07
Bonsoir,

MFC = Mise en Forme Conditionnelle. C'est dans l'onglet Accueil du ruban. Il suffit de se positionner sur une cellule de la zone $Q$2:$BQ$112 (zone où la MFC est active), d'aller ensuite dans gérer les règles puis double cliquer sur la formule =Q2>=2*MIN($P2:P2) pour voir l'intimité de la MFC.
La formule de la MFC répond à ta question sur le calcul du meilleur temps : c'est celui de l'équipe puisqu'on reste sur la ligne 2. Le $ devant le P fige (adressage absolu) la colonne de départ de la zone $P2:P2.
L'absence de $ devant le 2ème P signifie que la zone sera extensible au fur et à mesure que les tours s'enchaîneront : en R2 la zone sera $P2:Q2, en S2 ce sera $P2:R2. Pour la 2ème équipe, on passera à la ligne 3 puisqu'il n'y a pas de $ devant les 2 (adressage ligne-relatif).

Les noms des équipes : c'est tout simple. j'ai copié/collé la zone des équipes A2:A3611 en O2 puis j'ai utilisé l'onglet Données\Supprimer les doublons.
Ça ne m'a pas dérangé vu que les équipes sont une donnée stable connue avant le départ.

Un graphique avec toutes les équipes
: FBI (Fausse Bonne Idée) d'après moi. J'ai essayé avec 7 équipes ..... c'était déjà illisible. Alors, avec 110 équipes ... ça donne ça :


(pas de probleme pour que ce soit en xlsx) : tu aurais dû le dire avant. Les formules auraient été allégées au niveau du si(esterreur()).

tu as intégré ce tableau directement dans le fichier "source" : oui, ça ne m'a pas dérangé.
Pour séparer les 2 (le modèle et les données rafraîchies régulièrement), ça n'est pas compliqué mais un peu long.
Il faut d'abord mettre les données de passages dans un fichier à part (ccm_24h_vtt_passages.xlsx onglet Temps).
Il faut remplacer tous les appels aux zones de données dynamiques (genre DECALER($A$2;;;NBVAL($A$1:$A$20000)-1;1)) par les mêmes appels avec les nom du fichier et onglet en plus.
Il restera à supprimer les données de passages devenues inutiles.

Remarque : le plus simple sera sans doute de nommer ces zones (daans ccm_24h_vtt_passages.xlsx) pour que la formule devienne à la fois plus concise et plus lisible :

Passages_Dates =DECALER(Temps!$G$2;;;NBVAL(Temps!$A$1:$A$20000)-1;1)
Passages_Equipes =DECALER(Temps!$A$2;;;NBVAL(Temps!$A$1:$A$20000)-1;1)
Passages_Temps =DECALER(Temps!$H$2;;;NBVAL(Temps!$A$1:$A$20000)-1;1)

Et la formule anciennement en P2 au format xls deviendra, en B2 (normal, les colonnes données de passages ont disparu) format xlsx :
=SIERREUR(MAX(SI((ccm_24h_vtt_passages.xlsx!Passages_Equipes=$A2)*(1*ccm_24h_vtt_passages.xlsx!Passages_Dates=PETITE.VALEUR(SI(ccm_24h_vtt_passages.xlsx!Passages_Equipes=$A2;1*ccm_24h_vtt_passages.xlsx!Passages_Dates);B$1));1*ccm_24h_vtt_passages.xlsx!Passages_Temps));#N/A)

Et la formule anciennement en Q2 au format xls deviendra, en C2 (même explication) format xlsx :
=SI(ESTNA(B2);#N/A;SIERREUR(MAX(SI((ccm_24h_vtt_passages.xlsx!Passages_Equipes=$A2)*(1*ccm_24h_vtt_passages.xlsx!Passages_Dates=PETITE.VALEUR(SI(ccm_24h_vtt_passages.xlsx!Passages_Equipes=$A2;1*ccm_24h_vtt_passages.xlsx!Passages_Dates);C$1));1*ccm_24h_vtt_passages.xlsx!Passages_Temps));#N/A))

Petite explication sur la différence de formule entre la colonne B et les colonnes C et suivantes :
lorsque l'on rencontre un #N/A sur une ligne, toutes les valeurs qui suivront seront des #N/A. J'ai voulu accélérer le recalcul en insérant un test sur le #N/A.
Une différence aussi à ne pas oublier : la MFC ne porte que sur les cellules à partir de la colonne C.
Donc, ne surtout pas recopier B2 vers la droite !!! sinon, plus de MFC ni de gestion des #N/A.

J'ai un peu cabossé les MFC en faisant tout ça. Il faudra donc sûrement les adapter.

Ça ressemblera à ça : https://www.cjoint.com/c/FAoa2o1Wewa

cordialement
1
Migou77 Messages postés 6 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 27 janvier 2016
14 janv. 2016 à 22:39
Super ça à l'air de marcher.
Je vais le tester grandeur nature dans quelques jours pour voir si ça marche "en live".

Pour la MFC, je pose la question d'une moyenne à la place du minimum, quitte à diminuer le coefficient à 1.5.
ça permettra peut être de ne pas mettre des temps en rouge si l'équipe est composée d'un très fort et d'une personne plus faible.
J’abandonne l'idée du graphe, ta mfc suffit amplement.



J'aimerai te remercier en t'envoyant un tee shirt de l'épreuve (début mai), si tu le veux bien.
0
Migou77 Messages postés 6 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 27 janvier 2016
26 janv. 2016 à 21:48
Bonsoir, j'ai voulu faire le même type de recherche mais par no de puce.
En fait je souhaite faire un onglet par équipe dans lequel on extraira les temps pour chaque coureur. ainsi, j'irai encore plus vite pour trouver le manquant.
J'aurais donc le fichier général avec case qui passe en rouge s'il y a une anomalie, puis l'onglet de l'équipe pour voir de qui ça vient.

J'ai donc repris ta formule de ta colonne B (qui est de venue C car j'ai inséré une autre colonne devant):
=SIERREUR(MAX(SI((ccm_24h_vtt_passages.xlsx!Passages_Equipes=$B3)*(1*ccm_24h_vtt_passages.xlsx!Passages_Dates=PETITE.VALEUR(SI(ccm_24h_vtt_passages.xlsx!Passages_Equipes=$B3;1*ccm_24h_vtt_passages.xlsx!Passages_Dates);C$1));1*ccm_24h_vtt_passages.xlsx!Passages_Temps));#N/A)

en remplaçant les références à "Equipes" par "Puce(s)", soit:
=SIERREUR(MAX(SI((ccm_24h_vtt_passages.xlsx!Passages_Puce(s)=$B2)*(1*ccm_24h_vtt_passages.xlsx!Passages_Dates=PETITE.VALEUR(SI(ccm_24h_vtt_passages.xlsx!Passages_Puce(s)=$B2;1*ccm_24h_vtt_passages.xlsx!Passages_Dates);C$1));1*ccm_24h_vtt_passages.xlsx!Passages_Temps));#N/A)

j'ai bien entendu remplacer les noms par des no de puces.

forcement, ça ne marche pas...

quelle est mon erreur d'écriture?
Peut être y'a t'il plus simple?

merci
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
13 janv. 2016 à 05:51
Bonjour,

Voilà un p'tit truc qui récupère les temps au tour pour chaque équipe.

Pas besoin de trier l'import grâce à PETITE.VALEUR().

J'ai mis une MFC pour que les pics soient visibles sur le tableau. J'ai considéré qu'il y avait un pic lorsque le temps au tour était supérieur ou égal au double du meilleur réalisé.

Pour le graphique, il est possible d'ajouter des contrôles pour sélectionner l'équipe à afficher. je laisse la main aux spécialistes des graphiques.

Les zones de données sont dynamiques ce qui fait que le nombre de lignes de l'import est géré automatiquement.

le fichier (un peu lourd) : https://www.cjoint.com/c/FAneYCDDzVG

j'ai eu des alertes de fonctionnalités avec le format xls; j'espère que tu pourras le lire sans trop de perte.

cordialement
0
Migou77 Messages postés 6 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 27 janvier 2016
13 janv. 2016 à 22:46
Merci beaucoup. Quand je vois la formule, j'ai encore du chemin à parcourir...

Un soucis sur ta réponse et quelques menues questions:

ta MFC (qui veut dire?) est calculé sur le double (ou égal) du meilleur temps. C'est le meilleur temps de l'équipe ou de l'ensemble des équipes?

Je ne vois pas où se trouve l'accès à ta MFC (et donc les paramètres).
En tout cas, l'idée me parait très judicieuse

Comment as tu fait pour les noms d'équipe en ligne O. Ils n'apparaissent qu'une fois, il n'y a pourtant pas de fonction.

Penses tu qu'un graphique puisse reprendre les courbes de toutes les équipes en même temps?


le soucis (je pense), tu as intégré ce tableau directement dans le fichier "source". hors il faudrait que ce soit sous la base d'une extraction automatique (données, autre source).

je sais pas si j'explique bien... en gros il faudrait que tes formules soient dans un fichier EXcel dissocié du fichier source (ce dernier étant remis à jour très régulièrement, je ne sais pas s'il rasera tous ce qui s'y trouve ou s'il complétera).
(pas de probleme pour que ce soit en xlsx)

merci en tout cas
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
26 janv. 2016 à 22:25
Bonjour,

J'ai regardé par curiosité et je me pose des questions.
Comment peux-tu espérer distinguer une défaillance de puce d'un incident mécanique ou d'une défaillance du coureur ?
N°102 par exemple.
Il a des tours en 30-35 min et d'autres en 1h : 2 tours ou fatigue ??
Et d'autres encore en 1:50. 2 tours ? 3 tours ?

En voulant corriger une injustice je crains que tu n'en crées beaucoup d'autres.
Si le système n'est pas fiable tu t'exposes à des contestations. A part doubler d'un pointage manuel tu risques de tourner en rond un moment.
Ou bien se pencher de plus près sur les caractéristiques du système, peut-être que resserrer le passage de détection l'améliorerait ?
eric
0
Migou77 Messages postés 6 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 27 janvier 2016
27 janv. 2016 à 00:21
merci de tes remarques Eric,
Ce ne sera pas fait en correction "automatique". Ce fichier sera pour moi un outil de vérification lorsqu'une équipe vient me voir pour porter réclamation.
Par contre tu ne prends pas le bon exemple, car le 102 est coureur seul, H pour homme et 1 pour un équipier. Hors pour les solos, ce tableau ne sera point efficace dans le sens où ils doivent gérer les arrêts repas, mécanique, repos, etc.
par contre si tu regardes des équipes composées de plusieurs équipiers, les tours sont réguliers, sauf ennuie mécanique.

Ce tableau me permettra également d'éditer des statistiques (tps au tour, meilleurs tps entre eux, qui a la meilleur moyenne...) pour chaque équipe, les coureurs aiment bien ça.
d'où ma dernière question pour pouvoir éditer une fiche par équipe.

Effectivement, je travaille aussi sur la fiabilité du captage (puissance signal, vitesse de passage réduite dans le couloir, vérification de validité des puces)
.
0
Migou77 Messages postés 6 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 27 janvier 2016
27 janv. 2016 à 18:30
sur ce lien, j'ai refait le problème rencontré (feuille 2). Comme vous pourrez le voir, la première ligne fonctionne parfois, mais pas le reste..

https://www.cjoint.com/c/FABrv0uVU7F

pour mémoire, le fichier de la base de données:
https://www.cjoint.com/c/FAmwUDd0PrR

le fichier de JvDO marche très bien, mais j'arrive pas l'adapter..
0