web-dev-qa-db-fra.com

Excel: Trouver un sous-ensemble de nombres qui s'ajoutent à un total donné?

J'ai une colonne de chiffres (admettons qu'il s'agit de A1: A100) et je dois en trouver un sous-ensemble qui correspond à un certain total.

10
Nate Parsons

C'est possible avec le complément Solver *. Les étapes suivantes ont fonctionné pour moi dans Excel 2007 et 2010.

  1. Désignez une cellule pour contenir le résultat (C1 pour cet exemple) - il s'agit de la cellule cible et d'une colonne qu'Excel peut utiliser pour le travail manuel (B1: B100 pour cet exemple)
  2. Dans la cellule cible, entrez la formule "= SUMPRODUCT (A1: A100, B1: B100)" (sans guillemets). Ceci calculera la somme de A1 * B1 + A2 * B2 + ... etc
  3. Sélectionnez Ouvrir le solveur (onglet Données, groupe Analyse).
  4. La cellule cible doit être évidente ($ C $ 1 pour cet exemple)
  5. Pour 'Egal à:' sélectionnez 'Valeur de:' et entrez la valeur souhaitée
  6. Dans "En changeant les cellules", entrez "$ B $ 1: $ B $ 100" (pas de guillemets, il peut être nécessaire d'initialiser ces valeurs à 0 vous-même)
  7. Ajoutez une contrainte aux cellules pouvant être modifiées. Dans le menu déroulant, sélectionnez "bin" (binaire). Cela limite les valeurs de ces cellules à 0 (en retirant de la somme la cellule A correspondante) ou à 1 (en ajoutant la cellule A correspondante à la somme).
  8. Cliquez sur 'Résoudre' et attendez. Les nombres qui font partie du sous-ensemble que vous recherchez auront un 1 dans la colonne B.

Example


Si le solveur prend beaucoup de temps, vous pouvez l'aider en supprimant les lignes qui ne fonctionneront évidemment pas (le total est en dollars et une seule ligne a des centimes non nuls)


Bonus: Excel peut mettre en surbrillance automatiquement les cellules que vous recherchez en ajoutant une mise en forme conditionnelle à ces cellules. Sélectionnez toutes les cellules que vous souhaitez formater et à partir de (onglet Accueil) >> (groupe Styles) >> formatage conditionnel >> nouvelle règle, sélectionnez "Utiliser une formule pour déterminer les cellules à formater". Dans la formule, entrez '= $ B1 = 1' (sans guillemets), ce qui donnera la valeur true si la ligne correspondante dans la colonne B est 1. Pour le format, vous pouvez ajouter ce que vous voulez (gras, italique, remplissage vert, etc.). etc).

Un autre moyen facile de trouver les lignes importantes est de trier la colonne B Z-> A, et tous les 1 iront au sommet.


* Le complément de solveur peut être installé avec ces étapes

  1. Cliquez sur le bouton Microsoft Office, puis sur Options Excel.
  2. Cliquez sur Compléments, puis dans la zone Gérer, sélectionnez Compléments Excel.
  3. Cliquez sur Go.
  4. Dans la zone Compléments disponibles, cochez la case Add-in du solveur, puis cliquez sur OK. (Si le complément Solveur ne figure pas dans la zone Compléments disponibles, cliquez sur Parcourir pour localiser le complément.)
  5. Si un message vous informe que le complément du solveur n'est pas installé sur votre ordinateur, cliquez sur Oui pour l'installer.
25
Nate Parsons

Il existe un complément Excel SumMatch à faible coût, qui met en évidence le sous-ensemble de nombres qui s’ajoutent à une somme cible.

enter image description here

2
AlSoff