Regroupement d'objets 3 par 3 Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'552
Appréciations reçues : 32
Inscrit le : 6 avril 2007
Version d'Excel : 2010

Message par Yvouille » 29 juillet 2016, 15:19

Bonjour,

J’ai une liste d’objet dans la colonne A et je voudrais connaitre toutes les possibilités de les grouper 3 par 3, si nécessaire avec des objets laissés de côté. Pour 6 objets, j’attendrais donc le résultat suivant (du moins il me semble que c’est le résultat qu’on devrait obtenir) :

Objet 1 – Objet 2 – Objet 3 / Objet 4 – Objet 5 – Objet 6
Objet 1 – Objet 2 – Objet 4 / Objet 3 – Objet 5 – Objet 6
Objet 1 – Objet 2 – Objet 5 / Objet 3 – Objet 4 – Objet 6
Objet 1 – Objet 2 – Objet 6 / Objet 3 – Objet 4 – Objet 5
Objet 1 – Objet 3 – Objet 4 / Objet 2 – Objet 5 – Objet 6
Objet 1 – Objet 3 – Objet 5 / Objet 2 – Objet 4 – Objet 6
Objet 1 – Objet 3 – Objet 6 / Objet 2 – Objet 4 – Objet 5
Objet 1 – Objet 4 – Objet 5 / Objet 2 – Objet 3 – Objet 6
Objet 1 – Objet 4 – Objet 6 / Objet 2 – Objet 3 – Objet 5
Objet 1 – Objet 5 – Objet 6 / Objet 2 – Objet 3 – Objet 4
Objet 2 – Objet 3 – Objet 4 / Objet 1 – Objet 5 – Objet 6
Objet 2 – Objet 3 – Objet 5 / Objet 1 – Objet 4 – Objet 6
Objet 2 – Objet 3 – Objet 6 / Objet 1 – Objet 4 – Objet 5
Objet 2 – Objet 4 – Objet 5 / Objet 1 – Objet 3 – Objet 6
Objet 2 – Objet 4 – Objet 6 / Objet 1 – Objet 3 – Objet 5
Objet 2 – Objet 5 – Objet 6 / Objet 1 – Objet 3 – Objet 4
Objet 3 – Objet 4 – Objet 5 / Objet 1 – Objet 2 – Objet 6
Objet 3 – Objet 4 – Objet 6 / Objet 1 – Objet 2 – Objet 5
Objet 3 – Objet 5 – Objet 6 / Objet 1 – Objet 2 – Objet 4

Ca se complique s’il y a par exemple 10 objets. Une partie du résultat attendu ressemblerait à ça :
Objet 1 – Objet 2 – Objet 3 / Objet 4 – Objet 5 – Objet 6 / Objet 7 – Objet 8 – Objet 9 / Objet 10
…..
Objet 1 – Objet 7 – Objet 9 / Objet 3 – Objet 5 – Objet 10 / Objet 2 – Objet 4 – Objet 8 / Objet 6
…..
Objet 8 – Objet 9 – Objet 10 / Objet 5 – Objet 6 – Objet 7 / Objet 2 – Objet 3 – Objet 4 / Objet 1
…..


Mon but serait de pouvoir avoir entre 4 et 48 objets si possibles au départ. Ce serait évidemment le top.

Si cela est impossible, on pourrait soit partir dans la direction d’avoir moins d’objets au départ (par exemple se contenter d’un tel regroupement pour 15 objets seulement) ou décider de n’avoir que des multiples de 3 au départ. Pour ces deux dernières solutions, les objets surnuméraires seraient tout simplement éliminés au préalable par tirage au sort (mais je m’occupe de cette partie-là si nécessaire).

A titre d’information, ma liste d’objets est en colonne N et le résultat devrait être placé dans les colonnes suivantes, si possible avec chaque objet dans une colonne différente. Toutes ces colonnes ont des titres.

Cordialement.
Démo.xlsm
(9.77 Kio) Téléchargé 34 fois
Yvouille


:btres:
a
andrea73
Membre impliqué
Membre impliqué
Messages : 1'128
Inscrit le : 18 septembre 2015
Version d'Excel : 2013 FR

Message par andrea73 » 29 juillet 2016, 15:34

Bonjour Yvouille

s'agit-il d'un vrai problème ou d'un bel exercice ?

en tout cas c'est possible avec un bel algo récursif (comme ceux que l'on faisait à l'école des informaticiens)

il s'agit de Permuter toutes les combinaisons possibles... mais j'ai déjà tenté quelques algo récursifs et Excel (malheureusement) fini par se décourager avant la fin !

cependant un "récursif" peut toujours se (re)tourner pour devenir "itératif" (même si en général on fait plutôt l'inverse) mais j'ai peur que la "tâche" soit longue (déjà avec 6 objets - donc à 10 tu imagines ?)

Cordialement
Andréa73
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'552
Appréciations reçues : 32
Inscrit le : 6 avril 2007
Version d'Excel : 2010

Message par Yvouille » 29 juillet 2016, 16:21

Merci pour ta réponse.

Il s'agit d'un vrai problème :)

Donc même si avec 9 ou 12 objets c'était possible, ce serait déjà bien.
Yvouille


:btres:
a
andrea73
Membre impliqué
Membre impliqué
Messages : 1'128
Inscrit le : 18 septembre 2015
Version d'Excel : 2013 FR

Message par andrea73 » 29 juillet 2016, 16:44

(re)
Yvouille a écrit :Il s'agit d'un vrai problème
Alors je vais tenter de "retrouver" une version itérative de ce classique problème, ce week-end... je reviens vers toi lundi ou mardi...

PS/ de toute façon... même s'il navait pas été un vrai problème :lol: je crois que je me serais laisser tenter quand même... ;;)

Cordialement
Andréa73
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'552
Appréciations reçues : 32
Inscrit le : 6 avril 2007
Version d'Excel : 2010

Message par Yvouille » 29 juillet 2016, 19:07

Encore une fois merci de t'intéresser à ce problème. Je suis impatient de connaitre le résultat de tes recherches :)
Yvouille


:btres:
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'932
Appréciations reçues : 26
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 29 juillet 2016, 19:11

Bonjour Yvouille, bonjour Andrea...
je me suis cassé la tête dessus plus d'une heure cet après midi, en cherchant une manière de faire, mais déjà sur le papier, j'ai pas réussit a trouvé de fonction (récursive ou pas) pour faire le travail demandé....
je suis curieux aussi de voir la solution de Andrea, il est vrai je ne n'ais jamais fait ce genre d'exercice (pas d’école d'info non plus...)

on va donc patienté un peu
a+
fred
Je ne réponds pas aux M.P. non sollicités.
Fred
a
andrea73
Membre impliqué
Membre impliqué
Messages : 1'128
Inscrit le : 18 septembre 2015
Version d'Excel : 2013 FR

Message par andrea73 » 29 juillet 2016, 20:21

Bonjour (tous)

Mon alerte email vient de me signaler vos messages en particulier
fred2406 a écrit :je me suis cassé la tête dessus plus d'une heure cet après midi, en cherchant une manière de faire, mais déjà sur le papier, j'ai pas réussit a trouvé de fonction (récursive ou pas) pour faire le travail demandé.... je suis curieux aussi de voir la solution de Andrea, il est vrai je ne n'ais jamais fait ce genre d'exercice (pas d’école d'info non plus...)
moi non plus j'ai n'est pas suivi de cours d'info :( ... mais ce genre de problème reste un classique ;;) et lors de mon apprentissage autodidacte... j'ai souvent été confronté à des problèmes "de ce genre là"

par contre (pardon Yvouille) je n'ai pas eu le loisir de regarder "à la solution"

mais j'ai promis... alors à la semaine prochaine... pour l'instant je suis un peu (beaucoup) surbooké...

Cordialement
Andréa73
Avatar du membre
AMIR
Membre dévoué
Membre dévoué
Messages : 733
Appréciations reçues : 6
Inscrit le : 19 janvier 2015
Version d'Excel : 2007

Message par AMIR » 30 juillet 2016, 01:41

bonjour Yvouille

Mais avec 48 objets vous n’aurez pas assez de colonnes sur la feuille ?!
a
andrea73
Membre impliqué
Membre impliqué
Messages : 1'128
Inscrit le : 18 septembre 2015
Version d'Excel : 2013 FR

Message par andrea73 » 30 juillet 2016, 10:04

Bonjour Yvouille, tous...

J'ai enfin retrouvé un algo récursif qui fait cela "dans les règles"... je suis en train de l'adapter à notre cher Excel ! :D

Normalement un algo récursif est plus rapide, cependant comme je le disais précédemment Excel à tendance à lâcher prise dans la gestion de sa pile d'appels de fonctions...

Par contre mon pauvre Yvouille, le temps de traitement risque d'être long, et de plus en plus long au fur et à mesure que tu augmentes le nombre d'objets... :( approximativement 20 secondes pour 6 permutations de 12 objets ::o

Cordialement
Andréa73
Avatar du membre
AMIR
Membre dévoué
Membre dévoué
Messages : 733
Appréciations reçues : 6
Inscrit le : 19 janvier 2015
Version d'Excel : 2007

Message par AMIR » 30 juillet 2016, 23:05

bonsoir
Yvouille a écrit : J’ai une liste d’objet dans la colonne A et je voudrais connaitre toutes les possibilités de les grouper 3 par 3
Approximativement (1,40 secondes) pour 12 objets sans doublons
Cordialement
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message