Microsoft 365 Extraire les maximums d'une courbe au cours du temps.

Cyril D

XLDnaute Nouveau
Bonjour le Forum!

C'est ma première fois alors j'espère avoir mis en ressource toutes les informations nécessaires. Dans le cadres de mon mémoire j'ai récolté comme données des courbes de pressions exercées sur un capteur (60 poussées par enregistrement et environ 70 enregistrements) . Je souhaite maintenant extraire les 60 valeurs pics de ces courbes. La problème est que j'ai bien trouvé la fonction "Max et Min" mais que celles-ci ne renseignent que sur LA valeur la plus basse et LA plus haute. Est il possible de programmer Excel pour qu'il donne l'ensembles des valeurs (extrême pointées en rouge sur la photo). Ici ce sont des valeurs négatives donc je cherche "la plus petite" mais si nécessaire pour la manœuvre je sais que je peux tout passer en valeur absolue.

Si pour m'aider il vous faut le fichier voici un lien wetransfert pour pouvoir les télécharger car il est trop volumineux: https://we.tl/t-b4wj05P5a7

Merci d'avance !!!

Cyril D
 

Pièces jointes

  • Graphique avant tri pour le forum.png
    Graphique avant tri pour le forum.png
    36.4 KB · Affichages: 30

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Cyril,
Avec près de 68000 pts, ce n'est guère évident.
Un essai dans ce lien : https://www.cjoint.com/c/LDeoSoXHinY
J'ai défini un seuil qui vaut (max+min)/2, et je fait : =SI(E2>$K$2;"";-E2) ( j'ai pris la valeur absolue)
Mais on obtient cette courbe :
1649083525174.png

car il y a beaucoup de points avec des trous trop importants.
Sur "une pointe", on obtient ça :
1649083588275.png

Je ne sais pas si ça vous apportera quoi que ce soit.
Sinon, donnez nous votre besoin exact.

:)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Ensuite, si ne vous sont utiles que les min hors notion de temps, on peut obtenir une courbe "plus représentative". Un essai en lien ( https://www.cjoint.com/c/LDepBg5A3EY ) avec cette macro :
VB:
Option Explicit: Option Base 1
Sub TracerCourbe()
    Dim Tablo_In, Tablo_Out, i, iout, Seuil
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Tablo_In = Range("E1:E" & Range("A1000000").End(xlUp).Row)
    ReDim Tablo_Out(UBound(Tablo_In))
    Tablo_Out(1) = "Abs(min(Fz))"
    iout = 2
    Seuil = (Application.Max(Range("E1:E" & Range("A1000000").End(xlUp).Row)) + _
            Application.Min(Range("E1:E" & Range("A1000000").End(xlUp).Row))) / 2
    For i = 2 To UBound(Tablo_In)
        If Tablo_In(i, 1) < Seuil Then
            Tablo_Out(iout) = Abs(Tablo_In(i, 1))
            iout = iout + 1
        End If
    Next i
    ReDim Preserve Tablo_Out(iout)
    Sheets("Courbe").Select
    Range("A1").Resize(UBound(Tablo_Out, 1)).Value = Application.Transpose(Tablo_Out)
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
 

Cyril D

XLDnaute Nouveau
Tout d'abords merci!

Je ne comprends malheureusement pas vraiment ce que vous m'expliquez. Qu'entendez vous par "trop de trou" ? Je ne comprends pas l'intérêt de cette deuxième courbe par rapport à la première. Nous somme d'accords que dans ces deux cas je devrai quand même reprendre chaque pic individuellement pour en pointer le point ayant l'ordonnée la plus importante et ainsi connaitre la pression maximale exercée lors de cette poussée. N'existe il donc pas un code capable de réaliser ce travail? Sinon ça me fait 34sujet*60 pics= 2040 pics à analyser manuellement, j'ai donc plutôt intérêt à m'y mettre tout de suite! ;)
 

Cyril D

XLDnaute Nouveau
Oui j'ai employé le mot "pic " pour différencier de la courbe qui pourrait être comprise comme tout le graph. Je voudrait le point maximal de chaque courbe/pic comme dans la deuxième image pour pouvoir faire la moyenne de ces 60 valeurs pour chaque sujet. Non il n'a pas besoin d'être corrélé avec le temps.
 

Dugenou

XLDnaute Barbatruc
Bonjour,
Bien d'accord avec @sylvanu que je salue respectueusement :)
Il faut pouvoir définir un pic (écart avec la valeur précédente/suivante, avec le pic précédent en temps)
J'ai tenté : =SI(ET(ABS(E3)>ABS(E2);ABS(E3)>ABS(E4);ABS(E3)>1200);E3;"-") en D3 et recopié jusqu'en bas (le 1200 est lu sur le graphique comme étant le pic le plus bas). On isole 285 valeurs mais certaines sont assez proches en temps. Donc si on pouvait dire on considère qu'il y a au moins x minutes entre deux pics on pourrait être plus sélectif.
Espérant avoir pu aider.
Cordialement
 

Dugenou

XLDnaute Barbatruc
Re,
En fixant empiriquement un minimum de 90 unité de temps entre deux pic on parvient à sélectionner une trentaine de valeurs.
Voir dans la pj allégée à 10 000 lignes (et donc 5 pics) : les formules se recopient en bas sans probleme
Cordialement
 

Pièces jointes

  • cyrilD réduit.xlsx
    522.5 KB · Affichages: 3

Cyril D

XLDnaute Nouveau
Bonjour Dugenou

Merci pour ceci: SI(ET(ABS(E3)>ABS(E2);ABS(E3)>ABS(E4);ABS(E3)>1200);E3;"-"), ça me semble être un bon début!
De quelles formules parlez vous pour le suite? Quand j'ouvre votre document j'ai ceci. Je ne retrouve pas la trentaine de valeur dont vous parlez.
1649092903678.png
 

Cyril D

XLDnaute Nouveau
Bonjour Dugenou et Sylvanu!

Sylvanu, ce que tu as fais semble tout a fait correspondre a mon besoin! Un grand merci ! Comment puis-je faire la même chose avec mes autres graphiques ? Pourrais tu m'indiquer la marche a suivre ? Actuellement je cherche encore ce qu'est un VBA ...

Merci d'avance!
 

Cyril D

XLDnaute Nouveau
Re Sylvanu
Les courbes Fx et Fz ne sont pas à étudier. Quand je parlais de mes autres graphiques il s'agit de mes 34 autres sujets qui ont tous une courbe Fz en fonction du temps différente et dont je doit extraire les mêmes valeurs de chaque pic. Quelle est la marche à suivre pour arriver au même résultats que dans le fichier que tu m'as renvoyé avec les 56 valeurs?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
:rolleyes:Désolé.
Le plus simple est d'effacer les 5 colonnes A:E, puis de faire un copier coller des nouvelles valeurs.
Mais à l'avenir, aurez vous d'autres fichier à traiter ? Dans ce cas il faudrait peut être automatiser, mais c'est plus complexe.
Tous vos fichiers sont ils dans le même dossier ?
 

Statistiques des forums

Discussions
312 176
Messages
2 085 962
Membres
103 066
dernier inscrit
bobfils