Rémi Delattre
XLDnaute Nouveau
Bonjour,
Je cherche à résoudre le problème suivant :
- Des individus appartenant à des groupes disposent d'une quantité d'argent qui peut être négative ou positive
- Ils cherchent à répartir cet argent de façon à diminuer le déficit total du groupe au terme de la répartition.
- Les individus qui possèdent plus que 0 peuvent donner à ceux qui possèdent moins de 0 dans la limite de leur capital, mais ils refusent de s'endetter eux-mêmes.
- L'individu le plus excédentaire donne à celui qui est le plus endetté, puis au deuxième plus endetté, jusqu'à ce que la dette disparaisse. Si l'intervention de l'individu le plus excédentaire ne suffit pas, le deuxième prend le relais.
- Si, au terme de la répartition, tout l'argent excédentaire n'a pas été utilisé pour combler les besoins des individus endettés, il est conservé par son/ses détenteurs initiaux.
- Le groupe peut être composé d'un nombre d'individus très variable. Il peut être déficitaire dans son ensemble ou excédentaire dans son ensemble.
- Au terme du calcul, si l'argent d'un individu était initialement positif, il ne peut pas être supérieur. Cette contrainte n'a aucun sens pratique mais elle est importante.
Pour l'instant, j'ai entrepris :
- Une approche à base de MOYENNE.SI, SOMME.SI parmi les groupes. Le problème est que j'arrive à faire diminuer le déficit mais pas le capital de ceux qui prêtent.
- Une approche fondée sur le rang des individus parmi les prêteurs, avec l'idée que celui qui prête le plus récupère le plus si le groupe est excédentaire. Je n'ai pas réussi à l'automatiser.
En passant par des formules classiques, je constate qu'il est difficile d'éviter les références circulaires ou d'automatiser pour prendre en compte la variabilité des situations. Ce cas pourrait relever du Solver, mais je ne maîtrise pas son usage.
Pour clarifier, je vous transmet un fichier avec le résultat que je souhaiterais obtenir dans trois configurations assez différentes. Je suis au fait de la difficulté du problème et je suis preneur de toutes vos suggestions !
Je cherche à résoudre le problème suivant :
- Des individus appartenant à des groupes disposent d'une quantité d'argent qui peut être négative ou positive
- Ils cherchent à répartir cet argent de façon à diminuer le déficit total du groupe au terme de la répartition.
- Les individus qui possèdent plus que 0 peuvent donner à ceux qui possèdent moins de 0 dans la limite de leur capital, mais ils refusent de s'endetter eux-mêmes.
- L'individu le plus excédentaire donne à celui qui est le plus endetté, puis au deuxième plus endetté, jusqu'à ce que la dette disparaisse. Si l'intervention de l'individu le plus excédentaire ne suffit pas, le deuxième prend le relais.
- Si, au terme de la répartition, tout l'argent excédentaire n'a pas été utilisé pour combler les besoins des individus endettés, il est conservé par son/ses détenteurs initiaux.
- Le groupe peut être composé d'un nombre d'individus très variable. Il peut être déficitaire dans son ensemble ou excédentaire dans son ensemble.
- Au terme du calcul, si l'argent d'un individu était initialement positif, il ne peut pas être supérieur. Cette contrainte n'a aucun sens pratique mais elle est importante.
Pour l'instant, j'ai entrepris :
- Une approche à base de MOYENNE.SI, SOMME.SI parmi les groupes. Le problème est que j'arrive à faire diminuer le déficit mais pas le capital de ceux qui prêtent.
- Une approche fondée sur le rang des individus parmi les prêteurs, avec l'idée que celui qui prête le plus récupère le plus si le groupe est excédentaire. Je n'ai pas réussi à l'automatiser.
En passant par des formules classiques, je constate qu'il est difficile d'éviter les références circulaires ou d'automatiser pour prendre en compte la variabilité des situations. Ce cas pourrait relever du Solver, mais je ne maîtrise pas son usage.
Pour clarifier, je vous transmet un fichier avec le résultat que je souhaiterais obtenir dans trois configurations assez différentes. Je suis au fait de la difficulté du problème et je suis preneur de toutes vos suggestions !