Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Transposer Tableau

  • Initiateur de la discussion Initiateur de la discussion T1mAr
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

T1mAr

Guest
Bonjour,

Je souhaite trouver une methode qui me permette de transformer dans excel un liste de donées en tableau.

Voila comment cela se présente :
Je veux transposer ça :
1. Titre1
donnée a
donnée b
donnée x
2. Titre2
donnée a
donnée b
donnée x
etc...

en :
1. Titre1 / donnée a / donnée b / donnée x
2. Titre2 / donnée b / donnée c / donnée x
etc...

/ indique la séparation en les colonnes 1,2 etc...

Merci
 
Re : Transposer Tableau

re,

Un essai avec les titres comprenant un -

La formule en C1 :

Code:
=SI(LIGNE()=GAUCHE(INDEX($A$1:$A$100;MAX(ESTNUM(TROUVE("-";GAUCHE(
$A$1:$A$100;4)))*LIGNE($1:$100)));TROUVE("-";INDEX($A$1:$A$100;
MAX(ESTNUM(TROUVE("-";GAUCHE($A$1:$A$100;4)))*LIGNE($1:$100))))-1)*1;INDEX(
$A$1:$A$100;MAX(ESTNUM(TROUVE("-";GAUCHE($A$1:$A$100;4)))*LIGNE($1:$100))+
COLONNE()-3)&"";SI(LIGNE()*(COLONNE()-2)<PETITE.VALEUR(SI(ESTNUM(TROUVE("-";
GAUCHE($A$1:$A$100;4)))*LIGNE($1:$100)>0;ESTNUM(TROUVE("-";GAUCHE($A$1:
$A$100;4)))*LIGNE($1:$100));LIGNE()+1)-1;INDEX($A$1:$A$100;PETITE.VALEUR(
SI(ESTNUM(TROUVE("-";GAUCHE($A$1:$A$100;4)))*LIGNE($1:$100)>0;ESTNUM(
TROUVE("-";GAUCHE($A$1:$A$100;4)))*LIGNE($1:$100));LIGNE())+COLONNE()-3);""))

Toujours matricielle donc validation par CTRL + MAJ + ENTREE

Voir le fichier joint (dans lequel j'ai ajouté quelques lignes)

Je te laisse tester en grand.

@+

Edit :

Il y a moyen de raccourcir la formule : je suis parti sur le principe de tester la présence du caractère - dans les 4 premiers caractères de la chaine titre. Ce qui permet d'utiliser ce caractère pour les autres lignes au delà de ce 4ème caractère.

Si on part du principe que ce caractère est strictement réservé aux lignes de titres, la formule subira alors une cure d'amaigrissement.

@+
 

Pièces jointes

Dernière édition:
Re : Transposer Tableau

Bonjour T1mAr, bonjour à tous,

Un essai en macro.

Conditions de fonctionnement:

La numérotation des titres commence à 1 et s'incrémente régulièrement.
Le nombre de paramètres est limité à 5 (mais peut-être étendu).
Il n'y a pas de nombre de lignes maximal

Code:
Sub transpose()
Dim tablo As Variant
Dim Tabconv() As Variant
Dim T As Integer, i As Integer, j As Integer
tablo = Worksheets("Feuil1").Range("A3").CurrentRegion
ReDim Tabconv(UBound(tablo) / 4, 5)
T = 0
For i = 1 To UBound(tablo)
    If Left(tablo(i, 1), Len(CStr(T))) = T + 1 And Asc(Mid(tablo(i, 1), Len(CStr(T)) + 1, 1)) > 60 Then
    T = T + 1
    j = 0
    End If
    j = j + 1
    Tabconv(T, j) = tablo(i, 1)
Next i
 
Range("C1").Resize(T, 5) = Tabconv
End Sub

Cf exemple joint.

Edit: Le changement de ligne se fait lorsque les premiers caractères de la cellule sont égaux au n° de titre suivant et que le caractère suivant n'est pas un chiffre.

@+

Gael

PS: Quel courage Tibo pour cette formule impressionnante.
 

Pièces jointes

Dernière édition:
Re : Transposer Tableau

Bonjour,

On peut oublier la formule d'hier.

Il y avait moyen de faire beaucoup plus simple.

En C1 :

Code:
=SI(ESTNA(EQUIV(LIGNE()&"-*";$A$1:$A$100;0));"";SI(EQUIV(LIGNE()&"*";
$A$1:$A$100;0)+COLONNE()-3>=SI(ESTNA(EQUIV(LIGNE()+1&"-*";$A$1:$A$100;0));
NBVAL($A$1:$A$100)+1;EQUIV(LIGNE()+1&"-*";$A$1:$A$100;0));"";INDEX(
$A$1:$A$100;EQUIV(LIGNE()&"*";$A$1:$A$100;0)+COLONNE()-3)))

Formule simple à recopier vers la droite et vers le bas.

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
817
Réponses
23
Affichages
695
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…