Soustraction sur base des premières valeurs

Résolu/Fermé
nicmass Messages postés 4 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 janvier 2013 - 16 janv. 2013 à 16:36
nicmass Messages postés 4 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 janvier 2013 - 17 janv. 2013 à 13:27
Bonjour,

Je cherche une formule me permettant de d'effectuer la manoeuvre décrite dans le fichier joint.

J'aimerai, pour chaque valeur de Trial_Index (valeurs allant de 1 à 52), utiliser la première valeur de current_fix_x pour effectuer une soustraction afin d'obtenir l'écart entre cette première donnée et toutes les autres.

Vu que l'explication est quelque peu laborieuse, j'ai effectué à la main un exemple dans le fichier ci-joint.

D'avance, Merci pour toute l'aide que vous pourrez m'apporter !

www.packupload.com/C3KG84XW1YR (pour l'exemple)

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
16 janv. 2013 à 17:47
Bonjour

packload qui emmène sur un sponsor obligatoire ... moi je zappe

comme à peu près tout le monde sur ccm:

mettre le classeur sans données confidentielles en pièce jointe sur
http://cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse

0
nicmass Messages postés 4 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 janvier 2013
17 janv. 2013 à 10:07
Bonjour,

voici le lien pour accéder au fichier qui illustre ce que j'aimerais pouvoir faire:
https://www.cjoint.com/?3AqtvQebb6H

Désolé pour packupload, je n'avais pas remarqué cette redirection sur sponsor obligatoire.

Encore merci d'avance pour votre aide!

Nicolas
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 janv. 2013 à 10:15
OK, bien reçu
combien de lignes peux tu avoir (environ) ?
0
nicmass Messages postés 4 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 janvier 2013
17 janv. 2013 à 10:30
J'ai environ 12 000 lignes dans mon tableau excel
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 janv. 2013 à 11:20
re,

J"avais anticipé le nombre de ligne car ton souci ressemble assez à cette discussion; coïncidence? :o)
https://forums.commentcamarche.net/forum/affich-26910522-remplacement-plusieurs-valeurs-recopier-colonne-sous-condition#p26917603

essaies
Option Explicit
Sub mesurer_ecart()
Dim Maxi As Byte, Derlig As Long, T_fix(), T_diff()
Dim Debut As Long, Fin As Long, Base As Single, Cpt_g As Byte, cpt_i As Long
Dim start As Single 'test de rapidité à supprimer après essai

start = Timer 'test de rapidité à supprimer après essai
'initialisations
Application.ScreenUpdating = False
Derlig = Columns("C").Find("*", , , , , xlPrevious).Row
T_fix = Application.Transpose(Range("D2:D" & Derlig).Value)
Range("E2:E" & Derlig).ClearContents
T_diff = Application.Transpose(Range("E2:E" & Derlig).Value)

'collecte les données et fait la différence par index
Maxi = Application.Max(Columns("C"))
For Cpt_g = 1 To Maxi
     Debut = Columns("C").Find(Cpt_g, Range("C1"), xlValues).Row
     Fin = Columns("C").Find(Cpt_g, , , , , xlPrevious).Row
     Base = Cells(Debut, "D")
     For cpt_i = Debut - 1 To Fin - 1
          T_diff(cpt_i) = T_fix(cpt_i) - Base
     Next
Next

'restitutions
With Range("E2:E" & Derlig)
     .Value = Application.Transpose(T_diff)
     .NumberFormat = "0.0"
End With
Application.ScreenUpdating = True 'test de rapidité à supprimer après essai
MsgBox "durée : " & Timer - start & " .sec" 'test de rapidité à supprimer après essai

End Sub


Merci de me dire la durée pour tes 12000 lignes pour mes stats


0
nicmass Messages postés 4 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 janvier 2013
17 janv. 2013 à 13:27
Ca fonctionne à merveille! En 0.521 secondes!

Et en effet ça n'est pas une coïncidence puisque Clément, que tu as déjà bien aidé, est un collègue :-)

Merci beaucoup pour ton aide précieuse!

Nicolas
0