Combinaisons d'objets

SebastienN_ Messages postés 3 Statut Membre -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Merci de m'accueillir sur ce forum. J'ai besoin d'aide dans la création d'un tableau.

On a n objets (notés O1, O2... On) distincts répartis en p groupes (notés G1, G2... Gp) distincts. Un objet appartient à un et un seul groupe. Chaque groupe comporte donc entre 0 et n objets : si l'on note q1, q2... qp le nombre d'objets de chaque groupe, on a q1+q2+...=n.

Une feuille 1 comporte un tableau avec n colonnes (une colonne par objet) et 3 lignes :
- ligne 1 : nom de l'objet (O1 ou O2 ou ...)
- ligne 2 : groupe de l'objet (G1 ou G2 ou ...)
- ligne 3 : prix de l'objet

On cherche à créer dans la feuille 2 un tableau listant de façon automatique à partir de la feuille 1 toutes les combinaisons possibles d'objets, en excluant celles comportant au moins deux objets d'un même groupe : il ne peut y avoir dans une combinaison que 0 ou 1 objet d'un même groupe. On peut démontrer que le nombre de combinaisons possibles est égal à (q1+1)*(q2+1)*...

Le but du tableau est d'indiquer, pour chaque combinaison, la somme des prix des objets figurant dans la combinaison.

Je ne réussis pas à construire les formules du tableau de la feuille 2.

Voici une illustration du résultat souhaité :

Hypothèses :
1) 4 objets : O1, O2, O3, O4 (n=4)
2) 3 groupes (q=3) :
- G1 avec O1, O2 et O3 (q1=3 éléments)
- G2 avec O4 (q2=1 élément)
- G3 vide (q3=0 élément)
3) Prix des objets : O1=1€,O2=10€,O3=100€,O4=1000€

Nombre de combinaisons possibles : (3+1)*(1+1)*(0+1)=4*2*1=8

- Combinaison 1 : aucun objet ; somme des prix = 0€
- Combinaison 2 : O1 ; somme des prix = 1€
- Combinaison 3 : O1,O4 ; somme des prix = 1001€
- Combinaison 4 : O2 ; somme des prix = 10€
- Combinaison 5 : O2,O4 ; somme des prix = 1010€
- Combinaison 6 : O3 ; somme des prix = 100€
- Combinaison 7 : O3,O4 ; somme des prix = 1100€
- Combinaison 8 : O4 ; somme des prix = 1000€

Un grand merci à ceux qui pourraient m'aider!

4 réponses

  1. Raymond PENTIER Messages postés 58222 Date d'inscription   Statut Contributeur Dernière intervention   17 487
     
    Oh, Sébastien ! Tu veux nous filer un mal de crâne ?
    Personne ne cherchera à t'aider s'il faut se farcir ta longue explication sans disposer du moindre fichier !
     1) Tu vas dans https://www.cjoint.com/ 
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
    3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
    =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
    Il existe aussi :
    1) https://mon-partage.fr/
    2) https://www.transfernow.net/

    0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir Sebastien

    Par formule ? difficile !
    Par macro parfaitement possible, exemple :
    https://mon-partage.fr/f/skT47GIz/
    Tu peux enlever ou rajouter des colonnes en Feuil 1la macro s'adapte

    Cdlmnt
    Via

    0
  3. SebastienN_ Messages postés 3 Statut Membre
     
    Bonjour et merci!

    Le résultat est sans faute.

    Je souhaiterais néanmoins réussir à réaliser un tableau sans macro, car je ne maîtrise pas du tout cet outil et car le problème ci-dessus fait partie d'un problème de combinaisons encore plus vaste que celui ici exposé : je vais devoir intégrer ces formules dans d'autres formules.
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Re,

      Par formules c'est un casse-tête sans nom, je ne sais même pas si c'est possible
      Il faut le faire par macro surtout si le nombre d'objets et de groupe est variable
      et même par macro ce ne sera pas simple, celle que j'avais faite se basait sur ton exemple avec des combinaisons de 1 ou 2 objets mais au vu de ton fichier il faut aussi intégrer des combinaisons de 3, 4 objets, et voire plus !
      Si quelqu'un a le courage de se lancer dans ce boulot de programmation tant mieux pour toi, j'essayerai de regarder à temps perdu car le problème m'intéresse mais je ne te promets aucun résultat dans l'immédiat

      Cdlmnt
      Via
      0
  4. Raymond PENTIER Messages postés 58222 Date d'inscription   Statut Contributeur Dernière intervention   17 487
     
    Désolé, SebastienN,

    mais ton problème dépasse très largement mes compétences.
    0