|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
Bonjour
j'ai un petit souci et je sollicite votre aide pour me mettre sur la piste j'ai 2 colonnes de donnés (Temps et Force) Ce qui me donne un graphique avec une courbe qui fait 5 pics je cherche une formule pour afficher la valeur des 5 pics de cette courbe je vous joints le fichier d'exemple merci pour votre aide |
|
|
00
|
|
|
#2 |
![]() ![]() |
salut,
j'ai un doute sur la finalité de la question : tu cherches - à afficher sur le graphique les valeurs des pics ? - à détecter les pics et afficher leur valeur (quelque part dans ta feuille) ?
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
Oui bonne question
![]() effectivement la courbe ne sera jamais la même. donc: détecter les pics et récupérer les valeurs max de chaque pics quelques part sur la feuille. |
|
|
00
|
|
|
#4 |
![]() ![]() |
Reste à voir la définition de pic que tu souhaites appliquer
Si on considère un pic comme une abcisse pour laquelle l'ordonnée est supérieure à celle des deux abcisse encadrantes avec a > b > c et f(b) > f(a) et f(b) > f(c) alors f(b) est un pic on peut tester pour chaque valeur les valeurs "d'avant" et "d'après" pour mettre le flag Pic à Vrai ou faux
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
bon ben ça me dépasse
d'autre idées ? |
|
|
00
|
|
|
#6 |
![]() ![]() |
En fait en prenant un exemple bete avec des formules.
Si tes valeurs sont dans la colonne A et tu veux indiquer si ces valeurs sont des pics dans la colonne B. en B2 par exemple, tu aurais
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
merci pour ton exemple mais ça ne fonctionne pas
en fait je me retrouve avec beaucoup de pic et non pas avec les 5 qui correspondent aux points le plus haut des 5 courbes |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Benoit SchwobBusiness Analyst Inscription : juin 2009 Messages : 93 ![]() |
Bonjour skyzix,
Est-ce que tu as systématiquement 5 pics ? Parce que le truc, c'est que ton graphique montre évidemment 5 pics, certes, mais quand on y regarde de plus près, chaque pic n'est pas juste une montée avant, puis juste une descente après ! En fait il y a des "pics de passage", par exemple de brèves remontées dans une phase de descente. Et cette brève remontée peut très bien aller plus haut qu'un autre "vrai" pic. C'est un peu comme les massifs de montagne : on dit que le Mont-Blanc est le plus haut sommet de France (4807m), et le Mont Maudit le deuxième (4465m). Mais au fond, si on prend "la colline d'en face" sur le Mont Blanc, elle est peut-être à 4700m, donc c'est elle qui pourrait être la deuxième, non ? L'astuce c'est d'isoler les massifs, pour considérer "la colline d'en face" comme appartenant au Mont-Blanc, donc on ne la compte pas. Matériellement, on dira par exemple que, pour considérer deux sommets comme distincts, il faut qu'il y ait un vrai "vide" entre eux, par exemple une altitude basse. C'est pareil dans ton histoire : on pourrait dire par exemple que les massifs sont séparés par des points de passage à 1000. Tu en as 10, des points de passage à 1000 : 5 en montant, 5 en descendant. A partir de là, tu raisonnes séparément sur chaque massif, c'est à dire entre les points de passage deux par deux. Et tu trouves le point maxi de chaque massif séparément ! A plus, Benoît |
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
Bonjour Benoit
j'ai bien compris ton raisonnent ![]() j'ai effectivement fait =MAX() sur la plage de donnée ( colonne B) compris entre l’Abscisse X et Y (colone A) de chaque pics Si je reprendre mon fichier exemple: le 1er pic correspond aux lignes 493 a 3329 , j'ai donc fait =MAX(B493:B3329) ce qui me donne la valeurs max de ce pic je l'ai répéter pour les 4 autres. cette méthode est manuel et je cherche a le faire de façon automatique soit avec une formule ou soit avec du VBA. mais mes connaissances sont insuffisante dans se domaine. Je n'arrive pas a traduire don raisonnement en laquage Excel |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Benoit SchwobBusiness Analyst Inscription : juin 2009 Messages : 93 ![]() |
Bonsoir skyzix,
Il y a sûrement moyen de faire un méga-truc en VBA... en s'y cognant la tête pendant des plombes. En Excel, je te propose de partir sur la droite de tes deux colonnes et de faire le raisonnement pas à pas. Je vais m'y pencher mais avant j'ai deux petites questions, qui peuvent modifier la complexité du travail : - est-ce que tu as systématiquement 5 pics ? - est-ce que tu as toujours dans les 24 000 lignes ? A plus, Benoît |
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
Bonjour Benoit
Pour répondre a tes questions. En fait cette courbe correspond a des essais de cisaillements (lot de 5 éprouvettes) donc Oui toujours 5 pics. Par-contre le nombre de ligne peut varier. A bientot |
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Benoit SchwobBusiness Analyst Inscription : juin 2009 Messages : 93 ![]() |
Bonjour skyzix,
Joli sujet, finalement : énoncé simple, problématique "évidente", mais résolution complexe. Un fichier est joint, en bas… La clé de l'histoire, comme on le voyait l'autre jour, c'est de définir un seuil, c'est-à-dire une valeur qui servira de passage obligé pour distinguer deux pics. Par exemple dans ton problème, on peut dire que c'est le passage à l'ordonnée 1000. Le cœur du boulot, comme tu le disais l'autre jour, c'est de repérer les passages par ce seuil à 1000. Si on est perfectionniste, on relève tous ces passages : ceux en montant et ceux en descendant, mais en fait on n'a pas besoin d'être perfectionniste sur ce coup-là, il suffit de repérer les passages dans un sens, les descendants par exemple. Et on travaillera tout simplement entre un descendant et le descendant suivant ! Au cas où une autre valeur deviendrait plus pertinente, je variabilise la valeur 1000 dans la cellule F2. L'idée est d'identifier les passages descendants par ce seuil. Les valeurs "force" étant dans la colonne B, la colonne C teste, par exemple, avec ceci dans C5 : Je variabilise aussi les noms des colonnes sur lesquelles on travaille (A, B, C, dans F3, F4, F5 – en bleu sur fond jaune, c'est les éléments variables à ajuster si tu déplaces les choses dans la feuille.) Pour commencer, je travaille autour du 1er pic. Je définis d'abord sa zone : - sa zone commence à la ligne 3 (toute première ligne de donnée, valeur variable, dans I3). - ensuite, en J3, je calcule le nombre de lignes qu'il y a jusqu'au premier passage descendant par 1000 : c'est la fonction EQUIV qui me le donne, en cherchant la valeur '1' dans la plage de données qui va jusque tout en bas des données (30 000, tant qu'à faire) mais qui commence seulement à la ligne qu'on vient de définir en I3 ! Je me sers d'INDIRECT pour ça : - le numéro de la ligne de fin, en K3, c'est tout simplement la somme des deux nombres précédents (–1, hein) - en L3, je fabrique une jolie adresse de la zone. À partir de là, on cherche le pic lui-même. - trouver l'ordonnée (la force) c'est facile : comme j'ai l'adresse de la zone en L3, la zone elle-même est renvoyée par INDIRECT(L3) et donc il suffit d'en prendre le MAX, en M3 : - peut-être que c'est l'essentiel de ce que tu voulais, mais tant qu'à peut faire on peut aussi aller chercher l'abscisse (le temps) où ça s'est passé : je calcule en N3 le nombre de lignes passées depuis le début de la zone. C'est la même idée que plus haut pour la profondeur de la zone, sauf que je recherche la force du pic : =EQUIV(M3;INDIRECT("B"&I3):$B$30000;0) - j'additionne ça à la ligne du début de zone (–1, hein) pour avoir le numéro de ligne - et je peux trouver dans P3 la valeur du temps sur cette ligne : =INDIRECT($F$3&O3) Super, on a tout pour le premier pic. Maintenant, je travaille sur le deuxième pic : - la ligne de début de zone, notée en I4, c'est tout simplement la ligne de fin de la zone précédente, +1 pour le sport. - et toute la suite c'est pareil. Et pour les pics suivants, il n'y a plus qu'à recopier vers le bas et voilà ! A plus, Benoît |
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
Chapeau ....
![]() j'ai qu'un mot a dire ![]() jamais j'aurais pu trouver tout seul merci beaucoup |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 10 ![]() |
Juste une petite question
ça consiste a quoi quand tu dis "Je variabilise aussi les noms des colonnes sur lesquelles on travaille" A+ |
|
|
00
|
|
|
#15 |
|
Membre habitué
![]() Benoit SchwobBusiness Analyst Inscription : juin 2009 Messages : 93 ![]() |
La variabilisation des noms de colonnes, c'est pas le truc le plus malin de l'histoire, hum-hum...
L'idée derrière ça, c'est que : - là tout de suite on utilise les colonnes A pour le temps, B pour la force, C pour notre test de passage de seuil ; - mais on pourrait être amené à déplacer tout ça ailleurs dans la feuille, par exemple si on entrait une troisième valeur pour les mesures, ou bien si on décalait tout vers la droite parce qu'on fait plusieurs lots d'expérience et qu'on doit indiquer le code du lot dans la première colonne... Si ça arrive, au lieu de corriger toutes les formules qui font référence à ces trois colonnes, bah c'est plus facile de modifier ça dans trois cellules fixes, auxquelles se réfèrent toutes les formules. Cela dit, j'ai pas fait ça à fond, je crois qu'il y a des formules un peu tordues, qui font référence moitié à la cellule où j'ai variabilisé, moitié à "A", "B" ou "C" en dur. (J'aurais dû pourr cette idée jusqu'au bout ou pas du tout...) Benoît |
|
00
|
Copyright © 2000-2012 - www.developpez.com