Trier des données
Résolu
Juliette2215
-
Juliette2215 -
Juliette2215 -
Bonjour,
Je cherche à traiter des résultats issus d'un logiciel de simulation (fluent). Je me retrouve avec cinq colonnes de même taille (62500 valeurs) :
- numéro du noeud
- x coordonnée ex : (0,0,0...,a,a,a....)
- y coordonnée ex : (0,a,b,..,0,a,b,...)
- vitesse radiale ex : (a,b,c,d,e,f,...)
- vitesse axiale ex : (a,b,c,d,e,f,...)
Mon problème est que pour utiliser ces données, je dois les ré-arranger comme tel :
X : ligne
Y : colonne
vitesse radial et vitesse axiale : une matrice pour chaque.
Je peux le faire à la main en utilisant un filtre sur x, puis en prenant successivement les valeurs obtenues pour la vitesse radiale par exemple et en les collant par transposition dans une première ligne, avant de prendre la valeur de x suivante et de refaire la même chose en sautant une ligne.
Bien évidemment c'est super lourd, et vu la quantité de données a traiter, y aurait-il un code VBA qui pourrait réaliser cela a ma place ? Je m'y connais un peu en C++, mais pas du tout dans ce type de langage..
En vous remerciant d'avance,
Juliette
Je cherche à traiter des résultats issus d'un logiciel de simulation (fluent). Je me retrouve avec cinq colonnes de même taille (62500 valeurs) :
- numéro du noeud
- x coordonnée ex : (0,0,0...,a,a,a....)
- y coordonnée ex : (0,a,b,..,0,a,b,...)
- vitesse radiale ex : (a,b,c,d,e,f,...)
- vitesse axiale ex : (a,b,c,d,e,f,...)
Mon problème est que pour utiliser ces données, je dois les ré-arranger comme tel :
X : ligne
Y : colonne
vitesse radial et vitesse axiale : une matrice pour chaque.
Je peux le faire à la main en utilisant un filtre sur x, puis en prenant successivement les valeurs obtenues pour la vitesse radiale par exemple et en les collant par transposition dans une première ligne, avant de prendre la valeur de x suivante et de refaire la même chose en sautant une ligne.
Bien évidemment c'est super lourd, et vu la quantité de données a traiter, y aurait-il un code VBA qui pourrait réaliser cela a ma place ? Je m'y connais un peu en C++, mais pas du tout dans ce type de langage..
En vous remerciant d'avance,
Juliette
A voir également:
- Trier des données
- Fuite données maif - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Supprimer les données de navigation - Guide
- Excel validation des données liste - Guide
2 réponses
Bonjour
un exemple sur 13 lignes et 3 colonnes
dans ton cas, si j'ai compris ton exposé
il faudrait le faire en 4 fois
noeud,X,Y et 2 vitesses
mais je ne vois pas comment tu peux caser 62500 données en colonnes
Michel
un exemple sur 13 lignes et 3 colonnes
Option Explicit
Option Base 1
Sub transposer()
Dim Tablo()
Tablo = Range("A1:C13")
Range("E4").Resize(3, UBound(Tablo)) = Application.Transpose(Tablo)
End Sub
dans ton cas, si j'ai compris ton exposé
il faudrait le faire en 4 fois
noeud,X,Y et 2 vitesses
mais je ne vois pas comment tu peux caser 62500 données en colonnes
Michel
Oui mais pourquoi ne pas le dire dès le départ ? j'ai bossé pour rien...
de toutes façons, sans voir un extrait de ton classeur... une petite maquette des objectifs serat la bienvenue
Pour cela, mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente
de toutes façons, sans voir un extrait de ton classeur... une petite maquette des objectifs serat la bienvenue
Pour cela, mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente
Merci pour cette réponse rapide ! Mais malheureusement mon problème est un peu plus compliqué..
Avec mes vecteurs je veux obtenir :
- coordonnées selon x : trier du plus petit au plus grand, enlever les doubles, puis copier en transposant dans une autre feuille. [On passe de (62500x1) à (1x250)]
- coordonnées selon y : enlever les doubles, puis copier dans une autre feuille.
[On passe de (62500x1) à (250x1)]
- Pour une des vitesses : Au lieu d'avoir un vecteur (62500x1), je veux obtenir une matrice (250x250) ( Soit une matrice M{x,y} ).
Pour le traitement des coordonnées x et y c'est bon, j'ai enregistre une macro, mais pour les vitesses je ne sais absolument pas comment faire pour les traiter à l'aide d'un code (cf. premier post pour avoir une idée des manipulations à effectuer manuellement) ..