XL 2016 Sujet excel formule choix aléatoire selon conditions

  • Initiateur de la discussion Initiateur de la discussion Samulo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Samulo

XLDnaute Nouveau
Bonjour,

J'ai un sujet sur excel à traiter et il me faut une formule bien spécifique que je n'arrive pas à trouver, je t'explique :

Voici la base de travail déjà (exemple pour 1 produit) :

1610359097746.png



Je cherche une formule qui selon un nombre de produit insérer dans une cellule, cela sélectionne les machines pour lesquelles ce nombre est inférieure ou égal à la tournée (nombre de produit que peut contenir la cellule), et que après ça fasse un choix aléatoire entre ces machines.

Exemple : Je décide de produire 250 produits donc les machines "FESSMAN2, GERNAL1, BM1, BM2" sont concernés car leur tournée est égal à 312 et je veux que parmis ces 4 machines excel m'en choisissent une aléatoirement.

J'avais trouvé une formule permettant cela sauf que pour la formule que j'ai touvé il faut que la base de donnée reste fixe et inchangée or la base sera amené à être mofidifiée en ajoutant des nouveaux produit et ainsi changeant la position de certains dans la base donc il faut pas se référer à une cellule fixe. (Je ne sais pas si tu m'as compris.. ^^ )

Merci de votre aide !

Samulo
 

Pièces jointes

Dernière édition:
Bonjour Samulo,

Cette formule semble convenir à ton cahier des charges

En D13 :

=INDEX(C:C;PETITE.VALEUR(SI($G$2:$G$9=MIN.SI.ENS(G:G;G:G;">="&$D$12);LIGNE($G$2:$G$9);"");ENT(ALEA()*NB.SI(G:G;MIN.SI.ENS(G:G;G:G;">="&$D$12)))+1))

valider en matriciel (ctrl + maj + entrée)
 

Pièces jointes

Bonjour,

Question, pourquoi un fichier "Xls" alors que vous êtes en excel 2016, donc "Xlsx"?

Voici avec quelques cellules qui contiennent des formules intermédiaires (sur fond bleu)

Cdlt

Je ne sais pas pourquoi xls..

Impeccable ! Merci beaucoup ! L'idéal pour moi serait de faire sans formules intermédiaires mais si pas le choix alors cette solution me va à merveille !
 
Voir cette nouvelle version SANS min.si.ens

=INDEX(C:C;PETITE.VALEUR(SI(G:G=MIN(SI(G:G>=$D$12;G:G));LIGNE(G:G);"");ENT(ALEA()*NB.SI(G:G;MIN(SI(G:G>=$D$12;G:G))))+1))
Merci beaucoup ça fonctionne à merveille ! Cependant, c'est que pour un produit..

J'ai ajouter dans le fichier une feuille "base" et "charge" le but c'est dans la feuille charge quand une quantité est renseignée cela affiche la machine choisie comme ta formule le fait mais avec les données spécifiques de ce code produit qui sont dans la feuille "base"..
J'espère tu arrives à me suivre..
 

Pièces jointes

Tu m'as fait transpiré là, mais je crois que je l'ai...

=SI($C2>0;
INDEX(BASE!$C:$C;PETITE.VALEUR(SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))=MIN(SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))>=$C2;INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))));LIGNE(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1)));"");ENT(ALEA()*NB.SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1));MIN(SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))>=$C2;INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1));""))))+1));"")
 

Pièces jointes

Tu m'as fait transpiré là, mais je crois que je l'ai...

=SI($C2>0;
INDEX(BASE!$C:$C;PETITE.VALEUR(SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))=MIN(SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))>=$C2;INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))));LIGNE(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1)));"");ENT(ALEA()*NB.SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1));MIN(SI(INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1))>=$C2;INDIRECT("BASE!G"&EQUIV(A2;BASE!A:A;0)&":G"&(EQUIV(A2;BASE!A:A;0)+NB.SI(BASE!A:A;A2)-1));""))))+1));"")

Merci, quel logique as-tu utilisée pour créer la formule ? Est-ce par rapport au nombre de machine par exemple ?

Cordialement,

Samuel
 
J'ai gardé l'idée initiale mais fait en sorte de réduire le champs de recherche aux seules lignes du produit concerné, ce qui me fait en soit directement intégrer ce deuxième critère.
Pour ces longues formules, je travaille par portions "digestes" que je réassemble à la fin. Il faut par contre garder le format de ta liste, c'est à dire qu'un produit doit avoir toutes ses lignes qui se suivent.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
219
Réponses
5
Affichages
164
Réponses
3
Affichages
521
Retour