Organiser séries de valeurs

Keyran -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans le cadre de mon stage, je dois traiter d'importantes quantités de données, et je viens ici pour chercher de l'aide.

J'ai globalement 10 séries de valeurs pour 10 échantillons, et je voudrais effectuer une moyenne sur chaque valeur (+ de 1500).

Le problème est que chaque série est donnée sous un format xy, et les x ne sont pas exactement les mêmes (à 95% identiques).

Je vous explique en très simplifié :

a-x1 a-x2
b-y1 b-y2
c-z1 d-z2
d-w1 e-w2
f-v1 f-v2

J'ai ici deux séries de valeurs et je voudrais avoir :

a-x1-x2
b-y1-y2
c-z1
d-w1-z2
e-w2
f-v1-v2

C'est à dire mixer les abcisses afin d'avoir un seul axe, et pour chaque abcisse avoir les différentes valeurs des échantillons.

La quantité de points étant astronomique, je ne peux pas faire tout cela à la main. J'espère que mon problème est clair et que vous parviendrez à m'aider.

Merci d'avance,
Rose
A voir également:

7 réponses

rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
Hello,

Il serait plus simple de créer la macro si nous avions un échantillon de ton fichier.
Cependant si tu souhaites développer la procédure par toi-même (ça peut être un bon apprentissage), j'utiliserais la fonction find avec du findnext qui est très rapide.

With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
If c is Nothing Then
GoTo DoneFinding
End If
Loop While c.Address <> firstAddress
End If
DoneFinding:
End With

En résumé, pour chaque x différents tu viens chercher ses valeurs et tu les concatènes dans un tableau d'une autre page. Le find est extrêmement rapide, cela devrait prendre 30-1min maximum à exécuter.
0
Keyran
 
Merci beaucoup j'essaierai ça demain, comme je n'ai pas les fichiers sur mon ordinateur personnel.

J'ai posté une partie de mon fichier sur la réponse suivante, si tu penses que ton programme marche ca serait top !

Merci encore, vraiment.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Pas très clair !
Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".

Cdlmnt
0
Keyran
 
Bonjour,

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

Voilà une version simplifiée avec uniquement les 5 premières valeurs de 3 échantillons et ce que je souhaiterais avoir.
Il faut noter qu'ici les échantillons ont tous la même taille mais ce n'est pas le cas chez moi.

Merci de votre aide !
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
A tester

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

Cdlmnt
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
lien modifié
https://www.cjoint.com/c/HEDshUxZNMB
0
Keyran
 
Ca marche tres bien merci c'est top !
Le seul probleme qu'il me reste c'est que les virgules de mes masses ont disparu, mais je devrais trouver par moi-même comment les réinsérer.

Merci encore, t'es tres fort !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Keyran
 
Enfin ça reste un probleme car toutes les masses n avaient pas le meme nombre de chiffres apres la virgule donc une simple division ne suffit pas...
J y reflechis !
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Le seul probleme qu'il me reste c'est que les virgules de mes masses ont disparu
Tu veux parler des valeurs m/z dans le résultat obtenu ? Chez moi, elles y sont bien


au cas où, essaies en déclarant cle comme double
Dim dico As Object, cle As Double,
0
Keyran
 
Désolée de ne pas avoir répondu plus tôt, j'ai eu d'autres tâches à réaliser avant de pouvoir tester ton programme.

Avec "cle As double", les virgules sont là. Je te remercie vraiment, je n'aurais pas pu faire ça toute seule.
Rose
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
De rien,
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Bonne soirée
0