Combinaisons à partir d'un unique champ

geo7

XLDnaute Nouveau
Bonjour,

Est il possible d'avoir à partir d'un champ, deux champs représentant tout les couples possibles à partir du premier (en évitant les doublons), sous la forme d'une formule, tel que :

A
B
C
D

vers

A |B
A|C
A|D
B|A
B|C
etc...

Je pense que la réponse se cache dans les entrailles du net mais je ne parviens pas à mettre la main dessus...
Merci pour votre aide !
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour geo7 et bienvenue sur XLD :),

La réponse est sans doute oui mais pas c'est pas certain.
Mais comme il n'y a aucun fichier joint :(, il y a peu de chance qu'un répondeur se fende d'un code ex nihilo. Éditez votre question pour y "téléverser" un fichier exemple... Les réponses devraient arriver.

Est-ce que une solution par macro VBA vous conviendrait aussi ?

A+
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Suite...

Ma bonté me perdra :oops:!

J'avais dit à un membre éminent de XLD que je ne fournissais de fichier que pour un nouveau membre de XLD et seulement si le fichier était simplissime ; comme on est dans ce cas là, voir l'exemple fourni ci-dessous (les autres membres, pas tapez moi ! :confused:)

Attention ! Un nom dynamique a été créé: Termes.
Sa définition est : =DECALER(Feuil1!$A$1;1;0;NBVAL(Feuil1!$A:$A)-1;1)
Il référence la plage utile de la colonne A.

Pour rester avec des formules simples et exploitables (et parce que je ne sais pas faire sans :(), j'ai utilisé deux colonnes auxiliaires qu'on pourra masquer.

errata : dans les commentaires dans le fichier :
lire : C'est à dire à jusqu'à obtenir des cellules blanches en colonnes E et F.
à la place de : C'est à dire à jusqu'à obtenir des cellules blanches en colonnes C et D.
 

Pièces jointes

  • geo7- produit cartésien- formules-v1.xlsx
    35.7 KB · Affichages: 26
Dernière édition:

ODVJ

XLDnaute Impliqué
Bonjour à tous,

En compliquant les formules de mapomme on peut se passer des colonnes intermédiaires :
=SI(LIGNES($2:2)>NBVAL(Termes)*(NBVAL(Termes)-1);"";INDEX(Termes;(1+ENT((LIGNES($A$2:E2)-1)/(NBVAL(Termes)-1)))))
et
=SI(LIGNES($2:2)>NBVAL(Termes)*(NBVAL(Termes)-1);"";INDEX(Termes;1+MOD(LIGNES($2:2)-1;(NBVAL(Termes)-1))+(1+MOD(LIGNES($2:2)-1;(NBVAL(Termes)-1))>=(1+ENT((LIGNES($A$2:A2)-1)/(NBVAL(Termes)-1))))))

cordialement
 

Discussions similaires

Réponses
22
Affichages
764

Statistiques des forums

Discussions
312 198
Messages
2 086 146
Membres
103 130
dernier inscrit
FRCRUNGR