4
votes

Mélangez les données de plusieurs colonnes dans une seule colonne

Je veux combiner le contenu de trois colonnes dans une colonne comme dans cet exemple:

Result
A 1 X
A 1 Y
A 2 X
A 2 Y
B 1 X
B 1 Y
B 2 X
B 2 Y

Le résultat est donc une colonne avec 8 lignes comme celle-ci:

Col1  Col2  Col3
A     1     x
B     2     Y

J'ai besoin d'une commande Google Sheets pour le faire, pas d'une solution de feuille de calcul car les valeurs de résultat doivent changer automatiquement lors de l'utilisation de la feuille.

J'ai déjà essayé avec COMBINE et JOIN sans grand succès. Si, alternativement, vous me montrez comment combiner seulement deux des trois colonnes, je pourrais alors combiner la troisième dans une deuxième étape.


0 commentaires

3 Réponses :


4
votes

2 colonnes:
=ARRAYFORMULA(TRANSPOSE(SPLIT(REPT(CONCATENATE(D1:D&CHAR(9)), COUNTA(C1:C)), CHAR(9)))
 &" "&TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(D1:D))), CHAR(9))))

 0


3 colonnes:

=ARRAYFORMULA(
 TRANSPOSE(SPLIT(REPT(CONCATENATE(
 TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&" "&
 TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)))&CHAR(9)),
 COUNTA(C1:C)),CHAR(9)))&" "&
 TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(
 TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&" "&
 TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)))))), CHAR(9))))

2 commentaires

Vos solutions créent de nouvelles synapses dans mon cerveau! C'est quelque chose d'étonnant. C'est une bonne approche, je pense.


@oshliaer au cas où vous auriez besoin de créer plus de synapses, cliquez ici: webapps.stackexchange.com/a/125018/186471



1
votes

En supposant que A se trouve dans A1, dans Row1 et copié en fonction de:

=offset(A$1,int((row()-1)/4),)&" "&offset(B$1,abs(iseven(int((row()-1)/2))-1),)&" "&offset(C$1,mod((row()-1),2),)


1 commentaires

la sortie est sans espaces (si cela compte)



0
votes

Faites pivoter, rejoignez, faites pivoter, rejoignez, etc. Si j'avais une telle tâche, j'essaierais de multiplier N matrices N-1 fois.

entrez la description de l'image ici

=ARRAYFORMULA(TRANSPOSE(SPLIT(
  TEXTJOIN("·",TRUE,SPLIT(
    TEXTJOIN("·",TRUE,(A2:A3&" "&TRANSPOSE(B2:B3))),
    "·")&" "&C2:C3),
  "·"
)))


0 commentaires