EXCEL - Transposer/transformer un tableau

Bonjour à tous,

C'est ma première fois sur ce forum, je ne sais pas si je suis au bon endroit. Excusez-moi si ce n'est pas le cas.

J'ai un tableau Excel qui se présente sous la forme suivante :
X A
X B
X C
Y D
Y E
Z F
Z G
Z H

Je voudrais arriver à ce résultat :
X A B C
Y D E
Z F G H

J'ai essayé par un tableau croisé dynamique, mais sans succès.
Je pourrais le faire manuellement, mais c'est un tableau de 32k lignes et ma première colonne (de X, Y et Z) contient plusieurs milliers de valeurs différentes. Ce serait donc un travail particulièrement long...
Une info qui pourrait servir : une valeur de la deuxième colonne (A, B, C,...) pourrait tout à fait aussi être présente pour une valeur de la première colonne, il faut dont qu'elle apparaisse deux fois.

Je reste à votre disposition pour tout renseignement supplémentaire.

Merci d'avance!

3 réponses

  1. Bonjour,

    Pour obtenir le résultat (en jaune) :



    En C1 : =A1
    En C2, à recopier vers le bas, formule matricielle, à valider avec Ctrl+Maj+Entrée :
    =SIERREUR(INDEX($A$1:$A$8;PETITE.VALEUR(SI(ESTNA(EQUIV($A$2:$A$8;$C$1:C1;0));LIGNE($C$2:$C$8));LIGNE(A1)););"")
    En D1,, à reecoopier vers la droite et vers le bas :
    =SI(NB.SI($A$1:$A$8;$C1)>=COLONNE(A1);DECALER($B$1;EQUIV($C1;$A$1:$A$8;0)+COLONNE(A1)-2;);"")

    Cordialement.

    Daniel
    0
    1. Contributeur
      Bonjour
      voyez ici si cela peut répondre à votre question
      https://mon-partage.fr/f/a2KC1GvB/
      crdlmnt
      0
      1. Bonjour Daniel et Vaucluse,

        Vos deux solutions sont sensiblement les mêmes et fonctionnent toutes les deux parfaitement, je vous en remercie!

        Je ne pourrai malheureusement pas les utiliser dans mon cas car elles sont très gourmandes en ressources, ce qui fait planter Excel à cause de mes 32k lignes.

        En tout cas je suis impressionné par la formule, je n'y serais pas parvenu seul, encore merci!
        0
        1. Bonjour,

          Dommage !

          Regarde avec ce classeur. Il n'y a plus de formules matricielles. Ca va accélérer les calculs :

          https://mon-partage.fr/f/7kItPhpz/

          (bien que AGREGAT soit une fonction matricielle intégrée).
          Sinon, je ne vois qu'une solution par macro.

          Daniel
          0