J'ai la matrice suivante dans Excel:
3 colonnes: A, B, C
Rangée 1: a b c
Rangée 2: d e f
Rangée 3: ghi
Ce dont j'ai besoin, c'est une colonne unique avec toutes ces valeurs. Le résultat devrait ressembler à ça:
une
b
c
ré
e
f
g
h
je
La fonction TRANSPOSE ne fonctionne pas pour ce cas. J'ai essayé la fonction INDIRECT, mais je n'ai pas trouvé de solution. Je préférerais plutôt le manipuler avec des formules Excel standard qu'avec un makro.
Des idées?
Disons que nous avons:
Dans E1 entrez:
=INDEX($A$1:$C$3,ROUNDUP(ROW()/3,0),IF(MOD(ROW(),3)=0,3,MOD(ROW(),3)))
et copier pour obtenir:
En utilisant des formules similaires, vous pouvez mapper n’importe quel tableau à deux dimensions dans une seule ligne ou une seule colonne. Il est également facile de mapper une seule colonne ou une seule ligne dans un tableau.
Les réponses ci-dessus sont assez bonnes, mais à mon humble avis, la solution fournie par Chip Pearson ici ( http://www.cpearson.com/Excel/TableToColumn.aspx ), est supérieure à bien des égards puisqu'elle est immédiatement/automatiquement:
1) Détermine elle-même les valeurs de délimitation des rangées/colonnes et fonctionne immédiatement pour les valeurs rectangulaires, par ex. au-dessus, il faut entrer explicitement 3 pour num Cols et 3 pour num Rows, et doit également déterminer lequel est lequel. Considérant que la solution de Pearson le fait automatiquement (par exemple, le commentaire/la préoccupation de rmf ci-dessus).
2) Pearson propose les deux variantes pour Col-order et Row-ranged.
Cela figurait déjà au point 2 du très général
Excel: Formules de conversion de données entre colonnes/lignes/matrices :
La cellule supérieure de votre plage cible (par exemple, $H$1
) devrait contenir
=INDEX($A$1:$C$3,INT((ROW()-ROW($H$1))/3)+1,MOD(ROW()-ROW($H$1),3)+1)
où $A$1:$C$3
indique vos données source . Copiez la formule si nécessaire.
Vous pouvez aussi utiliser
=OFFSET($A$1,INT((ROW()-ROW($H$1))/3),MOD(ROW()-ROW($H$1),3))
comme mentionné dans l'article cité.