web-dev-qa-db-ja.com

Excel:特定の合計に追加する数値のサブセットを見つけますか?

数値の列があり(A1:A100だとしましょう)、合計して特定の合計になるサブセットを見つける必要があります。

10
Nate Parsons

これは、ソルバーアドイン*で可能です。次の手順は、Excel 2007および2010で機能しました。

  1. 結果を保持するセルを指定します(この例ではC1)-これはターゲットセルであり、Excelがスクラッチ作業に使用できる列です(この例ではB1:B100)。
  2. ターゲットセルに、数式「= SUMPRODUCT(A1:A100、B1:B100)」(引用符なし)を入力します。これは、A1 * B1 + A2 * B2 + ...などの合計を計算します
  3. [ソルバーを開く]を選択します([データ]タブ、[分析]グループ)
  4. ターゲットセルは明白である必要があります(この例では$ C $ 1)
  5. 「等しい」に「値:」を選択し、目的の値を入力します
  6. 「セルの変更」に「$ B $ 1:$ B $ 100」と入力します(引用符は不要です。これらの値を自分で0に初期化する必要がある場合があります)。
  7. 変更可能なセルに制約を追加します。プルダウンで、「bin」(バイナリ)を選択します。これにより、これらのセルの値が0(対応するAセルを合計から削除する)または1(対応するAセルを合計に追加する)に制限されます。
  8. 「解決」をクリックして待ちます。あなたが探しているサブセットの一部である数は、B列に1を持っています

Example


ソルバーに時間がかかる場合は、明らかに機能しない行を削除することで解決できます(合計はドル単位で、1行だけがゼロ以外のセントを持ちます)。


おまけ:条件付き書式をセルに追加することで、Excelで探しているセルを自動的に強調表示できます。 ([ホーム]タブ)>>(スタイルグループ)>>条件付きフォーマット>>新しいルールから、フォーマットするセルをすべて選択し、[数式を使用してフォーマットするセルを決定する]を選択します。式に「= $ B1 = 1」(引用符なし)と入力します。これは、B列の対応する行が1の場合にtrueと評価されます。形式には、必要なものを追加できます(太字、斜体、緑の塗りつぶし、等)。

重要な行を見つけるもう1つの簡単な方法は、列BをZ-> Aにソートすることです。1がすべて上に来ます。


*ソルバーアドインは次の手順でインストールできます

  1. Microsoft Officeボタンをクリックし、[Excelのオプション]をクリックします。
  2. [アドイン]をクリックし、[管理]ボックスで[Excelアドイン]を選択します。
  3. Goをクリックします。
  4. [利用可能なアドイン]ボックスで、[ソルバーアドイン]チェックボックスをオンにし、[OK]をクリックします。 (ソルバーアドインが[利用可能なアドイン]ボックスに表示されていない場合は、[参照]をクリックしてアドインを探します。)
  5. ソルバーアドインが現在コンピューターにインストールされていないというメッセージが表示されたら、[はい]をクリックしてインストールします。
25
Nate Parsons

低コストのExcelアドイン SumMatch があります。これにより、目標の合計に加算される数値のサブセットが強調表示されます。

enter image description here

2
AlSoff