Tri sous excel données
Chess33
Messages postés
2
Statut
Membre
-
PHILOU10120 Messages postés 6511 Date d'inscription Statut Contributeur Dernière intervention -
PHILOU10120 Messages postés 6511 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour.
Pourriez-vous m'aider svp... ?
(Sous excel 2007-2010)
J'ai un tableau de données sur trois colonnes T,X,Y où T est le temps et X,Y sont des grandeurs enregistrées à une cadence donnée. Je peux choisir la fréquence d'échantillonnage en fait (ou le pas d'incrémentation entre les valeurs Ti du tableau) de quelques millisecondes et plusieurs secondes. X variant de 0 à 7000 et croissant en général, et Y variant de -20 à 2000 est une grandeur aléatoire indépendantes de X. Mon fichier texte de sortie ou tableau Excel peut donc contenir quelques centaines de lignes à quelques dizaines de milliers suivant le pas choisi à l'enregistrement.
La grandeur X étant associée à Y (couple de points à un temps Ti donné) j'aimerais réduire le nombre de lignes de mon tableau après dépouillement en procédant par pas de N sur les données X (N=1 ; 5 ou 10 ... au choix) : c'est-à-dire ne retenir les lignes [Ti, Xi et Yi] de mon tableau que lorsque la grandeur Xi aura augmenté du pas N que je me suis fixé. Ou encore chaque fois que (Xi+k - Xi) = N ou (Xi+k - Xi) sera peu différent de N.
« N » le pas d'incrément pris entre les Xi du tableau de sortie est un entier alors que les valeurs sur les lignes Xi du tableau ne sont pas des entiers. Et donc il me faut à chaque fois retenir les lignes Xi les plus proches des valeurs entières.
En conclusion il faut à chaque fois récupérer les valeurs [Ti, Xi, Yi] d'une ligne, mais seulement et à chaque fois que la grandeur X aura augmenté de l'incrément donné (par exemple quand Xi= 0, 5, 10 ..... 7000 pour un pas N=5. En sachant que Xi est positif, croissant mais peut être parfois constant et donc redondant sur plusieurs dizaines de lignes indépendamment du temps T et de Y.
Je n'ai pas l'habitude du VBA et je n'arrive pas à voir simple : j'ai pensé partir de la première ligne, chercher à tester quand est-ce que (Xi+k - Xi)>=N et retenir les lignes vérifiant l'égalité ... Mais entre faire une opération en incrémentant à chaque fois les lignes, retenir que les parties entières des Xi : Int(Xi)+1 ou Sup(Xi), extraire les données au même format d'origine ... j'avoue que ça j'aurais besoin d'aide.
Désolé si un peu long et merci d'avance
Pourriez-vous m'aider svp... ?
(Sous excel 2007-2010)
J'ai un tableau de données sur trois colonnes T,X,Y où T est le temps et X,Y sont des grandeurs enregistrées à une cadence donnée. Je peux choisir la fréquence d'échantillonnage en fait (ou le pas d'incrémentation entre les valeurs Ti du tableau) de quelques millisecondes et plusieurs secondes. X variant de 0 à 7000 et croissant en général, et Y variant de -20 à 2000 est une grandeur aléatoire indépendantes de X. Mon fichier texte de sortie ou tableau Excel peut donc contenir quelques centaines de lignes à quelques dizaines de milliers suivant le pas choisi à l'enregistrement.
La grandeur X étant associée à Y (couple de points à un temps Ti donné) j'aimerais réduire le nombre de lignes de mon tableau après dépouillement en procédant par pas de N sur les données X (N=1 ; 5 ou 10 ... au choix) : c'est-à-dire ne retenir les lignes [Ti, Xi et Yi] de mon tableau que lorsque la grandeur Xi aura augmenté du pas N que je me suis fixé. Ou encore chaque fois que (Xi+k - Xi) = N ou (Xi+k - Xi) sera peu différent de N.
« N » le pas d'incrément pris entre les Xi du tableau de sortie est un entier alors que les valeurs sur les lignes Xi du tableau ne sont pas des entiers. Et donc il me faut à chaque fois retenir les lignes Xi les plus proches des valeurs entières.
En conclusion il faut à chaque fois récupérer les valeurs [Ti, Xi, Yi] d'une ligne, mais seulement et à chaque fois que la grandeur X aura augmenté de l'incrément donné (par exemple quand Xi= 0, 5, 10 ..... 7000 pour un pas N=5. En sachant que Xi est positif, croissant mais peut être parfois constant et donc redondant sur plusieurs dizaines de lignes indépendamment du temps T et de Y.
Je n'ai pas l'habitude du VBA et je n'arrive pas à voir simple : j'ai pensé partir de la première ligne, chercher à tester quand est-ce que (Xi+k - Xi)>=N et retenir les lignes vérifiant l'égalité ... Mais entre faire une opération en incrémentant à chaque fois les lignes, retenir que les parties entières des Xi : Int(Xi)+1 ou Sup(Xi), extraire les données au même format d'origine ... j'avoue que ça j'aurais besoin d'aide.
Désolé si un peu long et merci d'avance
A voir également:
- Tri sous excel données
- Comment faire un tri personnalisé sur excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Logiciel tri photo - Guide
- Si ou excel - Guide
2 réponses
Bonjour
Je ne sais pas si j'ai bien compris votre problème alors voici une idée sans macro
Dans une colonne à coté mettre cette formule (pour l'exemple je suis sur la colonne Z la cellule Z1 est vide)
En Z2 et tirer vers le bas
=SI(Z1="";1;SI(X2=$X$2+$AA$1*NB.SI($Z$1:Z1;1)-1;1;0))
La cellule AA1 correspond au pas voulu
Après vous filtrez sur les 1 ou 0 suivant votre besoin
sélectionner les zéro et vous pouvez supprimer les lignes
sélectionner les 1 et vous pouvez copier les lignes sur une autre feuille
C'est en forgeant que l'on devient forgeron. - C'est au pied du mur que l'on voit le maçon - on apprend toujours de ses erreurs
Je ne sais pas si j'ai bien compris votre problème alors voici une idée sans macro
Dans une colonne à coté mettre cette formule (pour l'exemple je suis sur la colonne Z la cellule Z1 est vide)
En Z2 et tirer vers le bas
=SI(Z1="";1;SI(X2=$X$2+$AA$1*NB.SI($Z$1:Z1;1)-1;1;0))
La cellule AA1 correspond au pas voulu
Après vous filtrez sur les 1 ou 0 suivant votre besoin
sélectionner les zéro et vous pouvez supprimer les lignes
sélectionner les 1 et vous pouvez copier les lignes sur une autre feuille
C'est en forgeant que l'on devient forgeron. - C'est au pied du mur que l'on voit le maçon - on apprend toujours de ses erreurs
Et merci d'avoir pris le temps.
Je vais regarder de près vos indications afin d'assimiler tout ça.
Je vais regarder pourquoi j'ai "# Valeur!" qui apparait quand je colle votre formule.
Je ne sais pas si j'ai été clair dans l'énoncé de mon problème et étant nouveau ici et je ne sais si on peut fournir un exemple de fichier en PJ.
C'est le caractère aléatoire de mes données Xi qui me posent problème dans mon "tri". La plage ou le nombre de lignes entre les dites lignes qui m'intéressent est en fait aléatoire puisque seul un intervalle de 5 unités [entre le Xi, de la dernière ligne retenue et celui la prochaine ligne à retenir], conditionne la sélection et copie de la ligne en cours.
C'est donc sur la donnée de sortie (colonne des X résultante) et après tri que je souhaiterais des intervalles de 5 unités environ. C'est le fameux pas N modifiable (fixé à 5 dans l'exemple en PJ) dont je parlais.
Ha oui désolé de l'abus de langage, mais par "tri" j'entendais « une recopie telle quelle » des valeurs d'une ligne parmi "n" et non pas un tri des valeurs de la colonne
Cordialement
Allez sur Cjoint.com sélectionner votre fichier avec le bouton parcourir
choisir une durée et créer un lien
copier ce lien et le coller dans votre réponse sur ce site CCM
Bonne journée
PS
j'ai bcp à apprendre et je dois voir aussi comment utiliser la fonction "RECHERCHEV" et les tableaux croisés dynamiques dans Excel.
Très cordialement.