-1
votes

Créer une liste combinée à partir de deux listes distinctes

J'utilise Google Feuilles pour créer une liste de produits qui combine deux ensembles de données. Je me demande s'il existe une fonction qui créera efficacement une liste qui est un produit des deux listes individuelles.

Je peux y parvenir de différentes manières, telles que la création d'un tableau, puis utiliser un calcul de décalage que je copierai la colonne de sortie, mais j'espère trouver une solution qui prendra les deux listes comme des tableaux et de la sortie. des combinaisons.

Je veux le faire de cette façon, car les longueurs de la liste sont dynamiques.

J'ai regardé = {list_1; list_2} mais cela vient de placer la deuxième liste sous la première liste, mais cela le fait comme une seule fonction cellulaire.

J'ai créé une feuille de calcul qui illustre ce que j'essaie d'atteindre et de ce que j'ai réussi à atteindre jusqu'à présent ...

https://docs.google.com/spreadsheets/d / 1q3lexM06UTMI1IE2HMJTNJBKHZC771KVNP1DDJL3JXS / EDIT? USP = Partage


0 commentaires

3 Réponses :


0
votes

Si vos listes sont dans des colonnes A et B, mettez ceci dans la colonne C et copiez-la jusqu'à la longueur du produit des deux longueurs de la liste.

= Concat (index (A: A, INT ((rangée () - 1) / Nombre (B: B)) + 1), index (B: B, mod (ligne () - 1, Compte (B: B)) + 1))

Je suppose que vous pourriez lancer dans une logique qui cache la sortie si vous allez trop loin, puis remplissez la colonne entière.

Ceci est adapté de ici .


3 commentaires

Bonjour @shim, je connais cette solution, mais je cherchais une seule formule cellulaire, quelque chose qui fonctionne au niveau de la matrice car, comme je l'ai mentionné dans les messages, les matrices peuvent être de longueur dynamique. J'ai déjà quelques solutions de travail, cela étant l'un d'entre eux l'autre étant la solution de décalage de la solution de décalage (List_1, Trunc ((rangée (List_2)) / Colonnes (List_1), 0), M () -Row (list_2), colonnes (list_1)), 1, 1) qui indexe efficacement à travers des cellules individuelles car la formule est copiée.


Si vous avez déjà résolu votre problème, vous êtes invité à poster une réponse à votre question.


Merci encore pour vos commentaires. Bien que je sache qu'il existe des moyens d'accomplir la sortie souhaitée, ma question est davantage axée sur la recherche d'une solution qui fonctionnera en entrant une formule / une fonction dans une cellule, sans que la nécessité de copier, et qui prendra deux listes de longueur dynamique. comme les intrants.



0
votes

J'ai trouvé la réponse ailleurs sur Stackoverflow.com.

La réponse est: = Arrayformula (Transpose (Split (Concaténate (Concaténate (A2: A & Char (9)), Counta (B2: B)), Char (9))) & "" & Transpose (Split (Concaténate (Rept (B2: B & Char (9) , Counta (A2: A))), Char (9))))

et je l'ai trouvé ici

Générez toutes les combinaisons possibles pour les colonnes dans Google Spreadsheets


0 commentaires

0
votes

Enveloppez-le dans Substitut CODE> Pour vous débarrasser de cet espace:

=ARRAYFORMULA(SORT(SUBSTITUTE(
 TRANSPOSE(SPLIT(REPT(CONCATENATE(A3:A&CHAR(9)),COUNTA(B3:B)),CHAR(9)))&" "&
 TRANSPOSE(SPLIT(CONCATENATE(REPT(B3:B&CHAR(9),COUNTA(A3:A))),CHAR(9)))," ",""),1,1))


0 commentaires