Aide pour transposition en colonne
Résolu
Raphael
-
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'aurais besoin de votre aide .
-
Voici mon tableau :
-
COLONNE A ---- COLONNE B
Patrick ---- foot
Patrick ---- basket
Patrick ---- tennis
Jean ---- foot
jean ---- hockey
Michel ---- Patinage
Michel ---- foot
-
et je voudrais le convertir dans le format suivant :
COLONNE A ---- B ---- C ---- D
Patrick ---- foot ---- basket ---- tennis
Jean ---- foot ---- hockey
Michel ---- patinage ---- foot
-
-
Comment feriez vous ? Une recherche V ?
Merci beaucoup pour votre aide
Raphael
-
-
J'aurais besoin de votre aide .
-
Voici mon tableau :
-
COLONNE A ---- COLONNE B
Patrick ---- foot
Patrick ---- basket
Patrick ---- tennis
Jean ---- foot
jean ---- hockey
Michel ---- Patinage
Michel ---- foot
-
et je voudrais le convertir dans le format suivant :
COLONNE A ---- B ---- C ---- D
Patrick ---- foot ---- basket ---- tennis
Jean ---- foot ---- hockey
Michel ---- patinage ---- foot
-
-
Comment feriez vous ? Une recherche V ?
Merci beaucoup pour votre aide
Raphael
-
-
A voir également:
- Aide pour transposition en colonne
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
- Figer colonne excel - Guide
4 réponses
Bonjour.
Combien de lignes environ : 10, 100, 1000 ?
Manipulation à réaliser une seule fois ou à refaire souvent ?
Combien de lignes environ : 10, 100, 1000 ?
Manipulation à réaliser une seule fois ou à refaire souvent ?
Bonjour
*voila un modèle à adapter qui pourra peut être vous convenir
revenez si besoin
https://www.cjoint.com/?CJhrFoJGXYC
Crdlmnt
*voila un modèle à adapter qui pourra peut être vous convenir
revenez si besoin
https://www.cjoint.com/?CJhrFoJGXYC
Crdlmnt
C'est top ! Exactement ce que je voulais, et parfaitement extensible.
Merci beaucoup pour votre aide (aussi rapide !) :)
-
Allez, si j'abuse un petit peu, pensez-vous pouvoir m'expliquer la construction de votre méthode, pour que j'apprenne en même temps ? Notamment la signification de Colonne, Index et Equiv de la formule en F2.
Quoi qu'il en soit, merci encore
Merci beaucoup pour votre aide (aussi rapide !) :)
-
Allez, si j'abuse un petit peu, pensez-vous pouvoir m'expliquer la construction de votre méthode, pour que j'apprenne en même temps ? Notamment la signification de Colonne, Index et Equiv de la formule en F2.
Quoi qu'il en soit, merci encore
Re
INDEX(Champ;ligne;colonne)
ressort la valeur du Champ située au croisement des N° de ligne et colonne du champ indiqués dans la suite du code
EQUIV(Valeur, champ colonne;0) ressort le N° de ligne dans le champ de la valeur cherchée
donc par exemple
=INDEX(A1:A100;EQUIV(X1;B1:B100;0))
va ressortir la valeur de A au N° de ligne où se trouve la valeur X1 dans le champ B1:B100.( Dans ce cas le N° de colonne n'est pas indiqué puisque le champ INDEX n'en a qu'une)
COLONNE() renvoie le N° de colonne ou se trouve le code (par exemple renvoie 6 en colonne F et donc colonne -5 en F renvoie 1)
Fonctionne aussi dans l'autre sens avec LIGNE()
Le principe est donc d'une part de coder en incrémentant le nom du nombre de fois où il se trouve dans la colonne noms et de renvoyer les infos de B en recomposant le nom cherché + le N° de 1 à xxx x selon le nombre de valeurs à ressortir.
A noter que cette solution n'exige pas que le champ de données soit classé
Espérant avoir été clair, mais via une messagerie ce n'est pas toujours facile.
crdlmnt
INDEX(Champ;ligne;colonne)
ressort la valeur du Champ située au croisement des N° de ligne et colonne du champ indiqués dans la suite du code
EQUIV(Valeur, champ colonne;0) ressort le N° de ligne dans le champ de la valeur cherchée
donc par exemple
=INDEX(A1:A100;EQUIV(X1;B1:B100;0))
va ressortir la valeur de A au N° de ligne où se trouve la valeur X1 dans le champ B1:B100.( Dans ce cas le N° de colonne n'est pas indiqué puisque le champ INDEX n'en a qu'une)
COLONNE() renvoie le N° de colonne ou se trouve le code (par exemple renvoie 6 en colonne F et donc colonne -5 en F renvoie 1)
Fonctionne aussi dans l'autre sens avec LIGNE()
Le principe est donc d'une part de coder en incrémentant le nom du nombre de fois où il se trouve dans la colonne noms et de renvoyer les infos de B en recomposant le nom cherché + le N° de 1 à xxx x selon le nombre de valeurs à ressortir.
A noter que cette solution n'exige pas que le champ de données soit classé
Espérant avoir été clair, mais via une messagerie ce n'est pas toujours facile.
crdlmnt
Il y a certainement des formules très élaborées, avec des EQUIV, DECALER, INDEX, COLONNE, LIGNE, ADRESSE.
En attendant, voici une méthode manuelle très basique :
1) Vérifier que la colonne A est triée (et que l'orthographe est régulière : éviter Marie-Line, Marie Line et Maryline par exemple pour désigner la même personne).
2) Sélectionner B1:B3 ; faire Copier ; aller dans C1 et faire Collage spécial /Transposer.
3) Recommencer avec B4: B5 transposées en C4, et ainsi de suite.
4) Trier le tableau en se plaçant dans la colonne C : supprimer les lignes dont les cellules en C sont vides (elles sont rassemblées en deuxième partie du tableau).
5) Supprimer la colonne B.
En attendant, voici une méthode manuelle très basique :
1) Vérifier que la colonne A est triée (et que l'orthographe est régulière : éviter Marie-Line, Marie Line et Maryline par exemple pour désigner la même personne).
2) Sélectionner B1:B3 ; faire Copier ; aller dans C1 et faire Collage spécial /Transposer.
3) Recommencer avec B4: B5 transposées en C4, et ainsi de suite.
4) Trier le tableau en se plaçant dans la colonne C : supprimer les lignes dont les cellules en C sont vides (elles sont rassemblées en deuxième partie du tableau).
5) Supprimer la colonne B.
Il y a environ 1500 lignes dans le tableau initial, ce qui devrait donc le réduire à quelques centaines une fois "transformé".
C'est à priori une manipulation unique, je ne cherche pas à l'automatiser.